@hatiolab/things-scene 10.1.51 → 10.1.53
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 +0 -33
- package/dist-types/figure/figure-capability.d.ts.map +1 -1
- package/dist-types/figure/figure-component.d.ts +5 -0
- package/dist-types/figure/figure-component.d.ts.map +1 -0
- package/dist-types/figure/figure-instance.d.ts +12 -52
- package/dist-types/figure/figure-instance.d.ts.map +1 -1
- package/dist-types/figure/figure-palette.d.ts +3 -3
- package/dist-types/figure/figure-palette.d.ts.map +1 -1
- package/dist-types/figure/figure-shape.d.ts +1 -57
- package/dist-types/figure/figure-shape.d.ts.map +1 -1
- package/dist-types/figure/index.d.ts +4 -8
- package/dist-types/figure/index.d.ts.map +1 -1
- package/dist-types/figure/v3/figure-v3-geometry.d.ts.map +1 -1
- package/dist-types/figure/v3/figure-v3-part-component.d.ts.map +1 -1
- package/dist-types/figure/v3/figure-v3-real-object.d.ts +7 -2
- package/dist-types/figure/v3/figure-v3-real-object.d.ts.map +1 -1
- package/dist-types/figure/v3/figure-v3-registry.d.ts.map +1 -1
- package/dist-types/figure/v3/figure-v3-rig.d.ts.map +1 -1
- package/dist-types/figure/v3/figure-v3-top-view.d.ts +32 -0
- package/dist-types/figure/v3/figure-v3-top-view.d.ts.map +1 -0
- package/package.json +2 -2
- package/things-scene-min.js +7 -7
- package/things-scene-min.js.map +1 -1
- package/things-scene.mjs +7 -7
- package/things-scene.mjs.map +1 -1
- package/dist-types/figure/figure-blueprint.d.ts +0 -56
- package/dist-types/figure/figure-blueprint.d.ts.map +0 -1
- package/dist-types/figure/figure-clip.d.ts +0 -87
- package/dist-types/figure/figure-clip.d.ts.map +0 -1
- package/dist-types/figure/figure-part-component.d.ts +0 -454
- package/dist-types/figure/figure-part-component.d.ts.map +0 -1
- package/dist-types/figure/figure-real-object.d.ts +0 -413
- package/dist-types/figure/figure-real-object.d.ts.map +0 -1
- package/dist-types/figure/figure-registry.d.ts +0 -73
- package/dist-types/figure/figure-registry.d.ts.map +0 -1
- package/dist-types/figure/figure-sizing.d.ts +0 -3
- package/dist-types/figure/figure-sizing.d.ts.map +0 -1
|
@@ -1,413 +0,0 @@
|
|
|
1
|
-
import * as THREE from 'three';
|
|
2
|
-
import { RealObject } from '../threed/real-object.js';
|
|
3
|
-
import type { TopOutline } from '../interfaces/real-object.js';
|
|
4
|
-
import type { Properties } from '../interfaces/types.js';
|
|
5
|
-
import type { PreparedFigure } from './figure-registry.js';
|
|
6
|
-
import type { FigureBlueprintAnchor, FigureBlueprintMember, FigureBlueprintParameter, FigureVec3 } from './figure-blueprint.js';
|
|
7
|
-
/**
|
|
8
|
-
* 저작한 Figure 의 3D 표현.
|
|
9
|
-
*
|
|
10
|
-
* ## 어떻게 서나
|
|
11
|
-
*
|
|
12
|
-
* object3d 묶음마다 mesh 하나를 자식으로 둔다
|
|
13
|
-
* 배율 = state.scale × dimensionScale(bounds ÷ base)
|
|
14
|
-
* ├ mesh(묶음 0) 공유 병합 geometry + 공유 material
|
|
15
|
-
* └ mesh(묶음 1)
|
|
16
|
-
*
|
|
17
|
-
* 치수는 `RealObject.dimensionScale` 에 실는다. 엔진이 state.scale·애니메이션과
|
|
18
|
-
* **곱해서** 반영하므로 서로 덮지 않는다. Figure 만 다른 구조를 쓸 이유가 없다.
|
|
19
|
-
*
|
|
20
|
-
* ## 무엇이 공유되고 무엇이 인스턴스마다 생기나
|
|
21
|
-
*
|
|
22
|
-
* **geometry 는 타입·묶음당 하나다.** 부품들을 base 좌표계에서 미리 합쳐 두고
|
|
23
|
-
* GeometryBank 에 넣는다. 인스턴스가 500개든 5,000개든 정점 버퍼는 묶음 수만큼만
|
|
24
|
-
* 있다. **material 도 마찬가지로 MaterialBank 가 공유한다.**
|
|
25
|
-
*
|
|
26
|
-
* **Mesh 객체는 인스턴스마다 생긴다.** three.js 에서 한 객체는 부모가 하나뿐이고 자기
|
|
27
|
-
* 행렬을 가지므로 같은 Mesh 를 여러 자리에 놓을 수 없다. 다만 Mesh 는 껍데기다 —
|
|
28
|
-
* geometry·material 참조와 행렬만 든다. 진짜로 객체까지 하나가 되는 길은
|
|
29
|
-
* `InstancedMesh` 이고, 그것은 인스턴스별 선택·컬링·재질을 다르게 다뤄야 해서 별개
|
|
30
|
-
* 결정이다.
|
|
31
|
-
*/
|
|
32
|
-
/**
|
|
33
|
-
* 청사진 좌표가 곧 three 좌표다 — 둘 다 x 오른쪽, y 위, z 앞이고, 둘 다 원점이
|
|
34
|
-
* 중심이다. **갈아끼울 것이 없다.**
|
|
35
|
-
*
|
|
36
|
-
* 컴포넌트 state 와의 환산은 `updateDimension` 한 곳에만 있다.
|
|
37
|
-
*/
|
|
38
|
-
export declare function memberGeometry(member: FigureBlueprintMember): THREE.BufferGeometry | null;
|
|
39
|
-
/**
|
|
40
|
-
* 회전까지 구운 형상 — **자리는 옮기지 않는다.**
|
|
41
|
-
*
|
|
42
|
-
* 크기 반응이 `scale` 이 아닌 부품이 쓴다. 그런 부품은 mesh 를 따로 갖고 `mesh.position`
|
|
43
|
-
* 으로 자리를 잡으므로, 형상은 원점에 있어야 한다.
|
|
44
|
-
*
|
|
45
|
-
* 회전을 mesh 에 걸지 않고 형상에 굽는 것이 중요하다. 되돌리는 배율이 비균등이라
|
|
46
|
-
* (`fixed` 는 축마다 다른 값이다) 회전 뒤에 곱하면 형상이 기울어진다.
|
|
47
|
-
*/
|
|
48
|
-
export declare function memberGeometryTurned(member: FigureBlueprintMember): THREE.BufferGeometry | null;
|
|
49
|
-
/**
|
|
50
|
-
* 부품 하나의 형상을 **제 중심을 원점에 두고** 만든다.
|
|
51
|
-
*
|
|
52
|
-
* 자리를 굽지 않는다. 그러면 크기·종류가 같은 부품끼리는 자리가 달라도 같은 형상을
|
|
53
|
-
* 나눠 쓸 수 있고, 모델러 화면에서는 `mesh.position` 이 곧 부품의 자리가 되어 기즈모로
|
|
54
|
-
* 끈 결과를 그대로 되읽을 수 있다.
|
|
55
|
-
*/
|
|
56
|
-
export declare function memberGeometryAtOrigin(member: FigureBlueprintMember): THREE.BufferGeometry | null;
|
|
57
|
-
/**
|
|
58
|
-
* 한 묶음의 부품들을 하나로 합친다. **모양당 한 번만** 만들고 창고에 둔다 — 모양이
|
|
59
|
-
* 같으면 몇 번을 불러도 **같은 객체**가 나온다. 공유가 실제로 일어나는지 시험이
|
|
60
|
-
* 확인할 수 있게 내보낸다.
|
|
61
|
-
*
|
|
62
|
-
* 합친 결과는 청사진 좌표 그대로다. 청사진의 원점이 이미 base 상자의 중심이라, 다른
|
|
63
|
-
* 컴포넌트들이 `geometry.center()` 로 맞추는 기준과 같은 자리에 있다.
|
|
64
|
-
*/
|
|
65
|
-
export declare function mergedGeometryOf(figure: PreparedFigure, index: number): THREE.BufferGeometry | null;
|
|
66
|
-
/**
|
|
67
|
-
* 물리량을 0~1 로 맵한다.
|
|
68
|
-
*
|
|
69
|
-
* 수가 아니거나 범위가 뒤집혀 있으면 **안 말한 것으로 친다** — 지어낸 자세보다 기본
|
|
70
|
-
* 자세가 낫다. 범위 밖은 끝에서 문다(`sampleChannel` 과 같은 규율이다).
|
|
71
|
-
*/
|
|
72
|
-
export declare function normalizeParameter(range: {
|
|
73
|
-
min: number;
|
|
74
|
-
max: number;
|
|
75
|
-
}, value: number | undefined): number | undefined;
|
|
76
|
-
/**
|
|
77
|
-
* 이 clip 이 지금 몇 배속인가. 인스턴스가 말한 것이 이기고, 없으면 보통 속도다.
|
|
78
|
-
*
|
|
79
|
-
* 수가 아닌 것과 음수는 **안 말한 것으로 친다.** 음수는 거꾸로 도는 것이 아니라 키프레임을
|
|
80
|
-
* 거꾸로 읽는 것이라 뜻이 흐리다.
|
|
81
|
-
*/
|
|
82
|
-
export declare function valueNow(running: {
|
|
83
|
-
clip: {
|
|
84
|
-
name: string;
|
|
85
|
-
};
|
|
86
|
-
}, said?: Record<string, number>): number;
|
|
87
|
-
/**
|
|
88
|
-
* 이 파라미터가 지금 가려는 자세. **0~1 이다.**
|
|
89
|
-
*
|
|
90
|
-
* 인스턴스는 `range` 의 단위로 준다 — 호이스트라면 mm 다. 안 줬거나 못 읽을 값이면
|
|
91
|
-
* 형식의 `default` 를, 그것도 없으면 `range.min` 을 쓴다.
|
|
92
|
-
*/
|
|
93
|
-
export declare function valueOf(parameter: FigureBlueprintParameter, said?: Record<string, number>): number;
|
|
94
|
-
/**
|
|
95
|
-
* 0 에서 1 까지 전 구간을 움직이는 데 걸리는 초.
|
|
96
|
-
*
|
|
97
|
-
* `state.parameterDurations[name] ?? clip.duration ?? 0`. The figure declares the default
|
|
98
|
-
* (`clip.duration`, the machine's speed) and the instance may override it, since the same hoist can
|
|
99
|
-
* run at different speeds in different installations. ADR-0051 ②.
|
|
100
|
-
*
|
|
101
|
-
* With nothing declared the move is instant. The length is never taken from the key times, because keys
|
|
102
|
-
* sit on the value axis. While it was, five legacy hold assets got a one-second move nobody chose,
|
|
103
|
-
* only because their keys happened to be at 0 and 1.
|
|
104
|
-
*
|
|
105
|
-
* 음수와 수 아닌 것은 안 말한 것으로 친다. `0` 은 「즉시」라서 말한 것으로 친다.
|
|
106
|
-
*/
|
|
107
|
-
export declare function sweepOf(parameter: FigureBlueprintParameter, said?: Record<string, number>): number;
|
|
108
|
-
export declare class FigureRealObject extends RealObject {
|
|
109
|
-
/** 부품 이름 → mesh. 애니메이션·바인딩이 부품을 찾는 자리다. */
|
|
110
|
-
private _meshByName;
|
|
111
|
-
/** 크기 반응이 걸린 부품들. 인스턴스 크기가 바뀔 때마다 다시 맞춘다. */
|
|
112
|
-
private _sized;
|
|
113
|
-
/** 부품 이름 → 청사진의 그 부품. clip 이 이 이름으로 부품을 가리킨다. */
|
|
114
|
-
private _memberByName;
|
|
115
|
-
/** 돌고 있는 clip 들. 비어 있으면 frameClock 을 구독하지 않는다. */
|
|
116
|
-
private _clips;
|
|
117
|
-
/** 값이 모는 파라미터들. clip 과 같은 프레임 구독을 쓴다. */
|
|
118
|
-
private _parameters;
|
|
119
|
-
/**
|
|
120
|
-
* clip 이 움직이는 부품들. **clip 별이 아니라 부품별이다.**
|
|
121
|
-
*
|
|
122
|
-
* 한 부품이 clip 여럿에 들 수 있다 — 롤 프레스의 위 롤은 도는 clip 과 열리는 clip
|
|
123
|
-
* 둘 다에 든다. clip 마다 따로 앉히면 뒤엣것이 앞엣것을 지운다.
|
|
124
|
-
*/
|
|
125
|
-
private _moved;
|
|
126
|
-
private _unsubscribeTick?;
|
|
127
|
-
/** Joint name → node. Empty for a figure without joints, which then builds exactly as before. */
|
|
128
|
-
private _joints;
|
|
129
|
-
/** Undoes the instance scale so joint nodes are rigid. Only exists when the figure has joints. */
|
|
130
|
-
private _rigid?;
|
|
131
|
-
/** Part name → the joint frame it moves in. */
|
|
132
|
-
private _frameByName;
|
|
133
|
-
/** Merged meshes that sit in a joint frame. Their position and scale follow the instance size. */
|
|
134
|
-
private _framedMeshes;
|
|
135
|
-
/** The instance scale the joint frames were last laid out for. */
|
|
136
|
-
private _jointScale;
|
|
137
|
-
get figure(): PreparedFigure | null;
|
|
138
|
-
/**
|
|
139
|
-
* 어느 램프가 켜져 있나. 부품 이름 → 켜짐.
|
|
140
|
-
*
|
|
141
|
-
* **인스턴스가 갖는다.** 자산 하나가 도면에 열 개 놓이면 각각 다른 등이 켜지므로,
|
|
142
|
-
* 「지금 켜져 있다」는 형식이 아니라 여기 있어야 한다. 안 말한 부품은 형식에 적힌
|
|
143
|
-
* 기본 상태를 따른다.
|
|
144
|
-
*/
|
|
145
|
-
get lamps(): Record<string, boolean> | undefined;
|
|
146
|
-
/**
|
|
147
|
-
* 램프를 켜고 끈다. **다시 세우지 않는다** — 재질만 갈아 끼운다.
|
|
148
|
-
*
|
|
149
|
-
* 다시 세우면 고른 것과 카메라가 날아가고, 합친 geometry 를 다시 만든다. 램프 하나
|
|
150
|
-
* 켜는 데 그럴 이유가 없다.
|
|
151
|
-
*/
|
|
152
|
-
updateLamps(): void;
|
|
153
|
-
/**
|
|
154
|
-
* 어느 clip 이 지금 어떻게 돌고 있나. clip 이름 → 수.
|
|
155
|
-
*
|
|
156
|
-
* **인스턴스가 갖는다.** 램프와 같은 이유다 — 같은 자산 열 개 중 셋만 돌고 있을 수
|
|
157
|
-
* 있고, 「지금」은 형식이 아니라 그 인스턴스의 사실이다.
|
|
158
|
-
*
|
|
159
|
-
* The number is the playback speed; `0` stops the clip. A pose driven by a value is a parameter
|
|
160
|
-
* (`state.parameters`), not a clip, and the old `drive` field that once told them apart is gone.
|
|
161
|
-
*/
|
|
162
|
-
get clips(): Record<string, number> | undefined;
|
|
163
|
-
/**
|
|
164
|
-
* 값을 다시 읽는다. **다시 세우지 않는다.**
|
|
165
|
-
*
|
|
166
|
-
* 흐른 시각은 그대로 두고 값만 바꾼다. 다시 세우면 도는 것이 매번 0 으로 튄다.
|
|
167
|
-
*/
|
|
168
|
-
updateClips(): void;
|
|
169
|
-
/**
|
|
170
|
-
* 이 인스턴스의 파라미터 값. 파라미터 이름 → **`range` 의 단위로 잰 수.**
|
|
171
|
-
*
|
|
172
|
-
* `clips` 와 **다른 칸인 것이 요점이다.** 저기 든 수는 배속(시각이 흐르는 속도)이고
|
|
173
|
-
* 여기 든 수는 지금 그만큼이라는 물리량이다 — 호이스트가 1200mm 내려와 있다. 한 칸에
|
|
174
|
-
* 섞으면 같은 이름이 어느 뜻인지 읽는 쪽이 청사진을 봐야 알 수 있다.
|
|
175
|
-
*
|
|
176
|
-
* **인스턴스가 갖는다.** 램프·clip 과 같은 이유다.
|
|
177
|
-
*/
|
|
178
|
-
get parameters(): Record<string, number> | undefined;
|
|
179
|
-
/**
|
|
180
|
-
* 이 인스턴스의 전이 속도를 덮는다. 파라미터 이름 → 0→1 전 구간의 초.
|
|
181
|
-
*
|
|
182
|
-
* The figure declares the default (`clip.duration`). The same hoist can run at different speeds in
|
|
183
|
-
* 실제로 있는 일이라 덮을 수 있게 둔다 — 「속도가 다르면 다른 도형 타입」은 택하지
|
|
184
|
-
* 않았다(ADR-0051 ②).
|
|
185
|
-
*/
|
|
186
|
-
get parameterDurations(): Record<string, number> | undefined;
|
|
187
|
-
/**
|
|
188
|
-
* 파라미터 값을 다시 읽는다. **지금 자세는 그대로 두고 목표만 바꾼다.**
|
|
189
|
-
*
|
|
190
|
-
* 여기가 전이가 일어나는 자리다. `at` 을 함께 옮기면 값을 줄 때마다 순간이동하고,
|
|
191
|
-
* 그러면 「내려가는 중」이 화면에 없다.
|
|
192
|
-
*/
|
|
193
|
-
updateParameters(): void;
|
|
194
|
-
/** 전이 속도만 다시 읽는다. 가던 것은 새 속도로 계속 간다. */
|
|
195
|
-
updateParameterDurations(): void;
|
|
196
|
-
onchange(after: Properties, before: Properties): void;
|
|
197
|
-
build(): void;
|
|
198
|
-
/**
|
|
199
|
-
* Builds a node per joint, parents first (the blueprint lists them that way), under a root that undoes
|
|
200
|
-
* the instance scale. Positions are laid out by `layoutJoints` whenever the instance size changes.
|
|
201
|
-
*/
|
|
202
|
-
private buildJoints;
|
|
203
|
-
/**
|
|
204
|
-
* Lays out the joint frames for an instance scale (ADR-0066 decision 3).
|
|
205
|
-
*
|
|
206
|
-
* Sizing is solved in the rest pose first: each origin moves with the part it is attached to
|
|
207
|
-
* (`jointOriginPosition`), and the nodes take those positions in unscaled millimetres. A merged mesh in a
|
|
208
|
-
* frame then carries the instance scale itself and is offset by the frame origin, so at joint value 0
|
|
209
|
-
* every vertex lands where it lands without joints.
|
|
210
|
-
*/
|
|
211
|
-
private layoutJoints;
|
|
212
|
-
/**
|
|
213
|
-
* Where an anchor sits **right now** -- a slot or a port follows the joint its part hangs from
|
|
214
|
-
* (ADR-0066 decision 4).
|
|
215
|
-
*
|
|
216
|
-
* The blueprint writes the rest position. When the anchor names a joint frame, the frame's nodes say
|
|
217
|
-
* where that point has travelled: the point enters the frame the way a framed mesh does (scaled by the
|
|
218
|
-
* instance, with the frame origin taken off), rides the chain of joint nodes, and comes back out in
|
|
219
|
-
* figure millimetres -- the same measure the blueprint uses, so the caller sees one unit either way.
|
|
220
|
-
*/
|
|
221
|
-
anchorPosition(anchor: FigureBlueprintAnchor): FigureVec3;
|
|
222
|
-
/**
|
|
223
|
-
* 물건이 이 자리에 매달릴 곳 — **관절 노드와 그 안에서의 자리**(ADR-0066 결정 4).
|
|
224
|
-
*
|
|
225
|
-
* 따라가게 하는 일은 장면 그래프가 한다. `handoverIn` 이 물건의 object3d 를 이 노드에
|
|
226
|
-
* 옮겨 달면 관절이 도는 대로 따라간다 — 프레임마다 좌표를 다시 셈하는 코드를 두지 않는다.
|
|
227
|
-
* 노드는 인스턴스 배율을 되돌린 뿌리 아래라, 매달린 물건이 figure 의 배율로 찌그러지지
|
|
228
|
-
* 않는다.
|
|
229
|
-
*
|
|
230
|
-
* 물건은 **anchor** 로 놓는다 — 닻의 자리에 앉힌다. 집힌 자리를 그대로 두는 `world-preserve`
|
|
231
|
-
* 도 있고 손으로 쓴 로봇팔이 그것을 쓰지만, 그것은 그 컴포넌트의 시각적 선택이다. 형식에서
|
|
232
|
-
* slot 은 물건이 앉는 정해진 곳이라, 물건이 닻 밖에 있으면 그 figure 의 자리 선언과 그림이
|
|
233
|
-
* 다른 말을 하게 된다. slot 의 뜻을 grip 과 seat 로 가르는 칸은 형식에 없다 — 그 구분이
|
|
234
|
-
* 실제로 필요한 figure 가 나오면 그때 세운다.
|
|
235
|
-
*
|
|
236
|
-
* 관절 틀 밖의 자리는 **없음**을 낸다 — 부르는 쪽이 지금까지 하던 대로 표면에 앉힌다.
|
|
237
|
-
*/
|
|
238
|
-
anchorAttachment(anchor: FigureBlueprintAnchor): {
|
|
239
|
-
attach: THREE.Object3D;
|
|
240
|
-
localPosition: FigureVec3;
|
|
241
|
-
} | undefined;
|
|
242
|
-
/**
|
|
243
|
-
* Sets every joint node to a joint value: degrees about the axis for revolute and continuous,
|
|
244
|
-
* millimetres along the axis for prismatic. A joint nobody drives is at 0, its rest pose.
|
|
245
|
-
*
|
|
246
|
-
* Prismatic travel scales with the instance per axis, the same as a part translation does, since that
|
|
247
|
-
* is added inside the instance-scaled frame. Two kinds of moving in one figure must not behave
|
|
248
|
-
* differently (ADR-0066 decision 3).
|
|
249
|
-
*/
|
|
250
|
-
private applyJoints;
|
|
251
|
-
/**
|
|
252
|
-
* 이 자산의 clip 들을 세운다. **`build()` 끝에서 한 번.**
|
|
253
|
-
*
|
|
254
|
-
* clip 은 부품 바깥에 있고 부품 여럿을 함께 움직이므로, 부품을 다 세운 뒤라야 어느
|
|
255
|
-
* mesh 에 걸리는지 풀 수 있다.
|
|
256
|
-
*/
|
|
257
|
-
private takeClips;
|
|
258
|
-
/**
|
|
259
|
-
* 이 자산의 파라미터들을 세운다. **`takeClips` 와 같은 자리에서 한 번.**
|
|
260
|
-
*
|
|
261
|
-
* 묶는 일은 clip 과 똑같다 — 채널이 부품을 이름으로 가리키고 그 부품이 어느 mesh 인지
|
|
262
|
-
* 푼다. 다른 것은 **시작 자세**다. clip 은 0 에서 시작해 흐르지만 파라미터는 인스턴스가
|
|
263
|
-
* 이미 준 값에서 시작한다. 건물이 세워질 때 호이스트가 이미 내려와 있으면 내려온 채로
|
|
264
|
-
* 서야지, 0 에서 내려오는 것을 보여 주면 안 된다.
|
|
265
|
-
*
|
|
266
|
-
* A curve whose keys all share one position is kept too. For a clip a zero length does nothing, but a
|
|
267
|
-
* parameter curve lives on the value axis, so such a curve is simply a figure that holds one pose.
|
|
268
|
-
*/
|
|
269
|
-
private takeParameters;
|
|
270
|
-
/**
|
|
271
|
-
* 채널들이 가리키는 부품을 mesh 에 묶는다. 묶인 채널 수를 낸다.
|
|
272
|
-
*
|
|
273
|
-
* **clip 과 파라미터가 같은 함수를 쓴다.** 묶는 규칙은 구동 방식과 무관하고, 두 벌이
|
|
274
|
-
* 되면 한쪽만 고쳐지는 것은 시간 문제다.
|
|
275
|
-
*/
|
|
276
|
-
private takeChannels;
|
|
277
|
-
/**
|
|
278
|
-
* clip 이 있으면 프레임을 받는다.
|
|
279
|
-
*
|
|
280
|
-
* **`build()` 에서 구독한다.** 그때라야 parent 체인이 서 있어서 frameClock 이 편집
|
|
281
|
-
* 모드인지 판정할 수 있다 — 저작 중에 부품이 움직이면 안 된다. 그 판정은 frameClock 이
|
|
282
|
-
* 혼자 한다. 여기서 모드를 다시 보지 않는다.
|
|
283
|
-
*/
|
|
284
|
-
private startTicking;
|
|
285
|
-
/**
|
|
286
|
-
* 한 프레임만큼 clip 을 민다.
|
|
287
|
-
*
|
|
288
|
-
* ## clip 은 **겹친다**
|
|
289
|
-
*
|
|
290
|
-
* 한 부품이 clip 여럿에 든다. 포크리프트의 포크는 드는 clip 과 앞으로 내미는 clip
|
|
291
|
-
* 둘 다에 들고, 둘은 **같은 경로(translation)** 를 쓴다.
|
|
292
|
-
*
|
|
293
|
-
* 이 둘은 서로 다른 자세를 다투는 것이 아니라 **기계의 서로 다른 축**이다. 리치 트럭은
|
|
294
|
-
* 들면서 동시에 나간다. 그래서 덮어쓰지 않고 합친다.
|
|
295
|
-
*
|
|
296
|
-
* translation 더한다 들기 900 + 내밀기 400 = 900 올라가고 400 나간 자리
|
|
297
|
-
* rotation 곱한다 회전은 더하는 것이 아니라 잇는 것이다
|
|
298
|
-
* scale 곱한다 반으로 줄인 것을 다시 반으로 줄이면 4분의 1
|
|
299
|
-
*
|
|
300
|
-
* 한동안 「뒤엣것이 이긴다」였다. 그때는 아래 롤만 돌았다 — 도는 clip 이 넣은 회전을,
|
|
301
|
-
* 이동만 든 clip 이 항등으로 다시 써서 지웠다.
|
|
302
|
-
*
|
|
303
|
-
* ## 멈춘 clip 도 제 자세를 낸다
|
|
304
|
-
*
|
|
305
|
-
* 배속 0 은 「없다」가 아니라 「선다」다. 건너뛰면 그 clip 이 만든 자세가 사라져 부품이
|
|
306
|
-
* 0 으로 튄다.
|
|
307
|
-
*
|
|
308
|
-
* `dt` 는 sim 시간이라 멈춤·배속이 그대로 먹는다.
|
|
309
|
-
*/
|
|
310
|
-
private advanceClips;
|
|
311
|
-
/**
|
|
312
|
-
* 자세 하나를 그 부품의 자리에 **합친다.**
|
|
313
|
-
*
|
|
314
|
-
* clip 과 파라미터가 같은 함수를 쓴다 — 포크리프트의 포크는 드는 파라미터와 앞으로
|
|
315
|
-
* 내미는 파라미터 둘 다에 들고, 둘은 같은 경로(translation)를 쓴다. 구동 방식이
|
|
316
|
-
* 달라도 합치는 규칙은 같다.
|
|
317
|
-
*/
|
|
318
|
-
private mixPose;
|
|
319
|
-
/**
|
|
320
|
-
* 세워지자마자 파라미터 자세를 앉힌다. **첫 프레임을 기다리지 않는다.**
|
|
321
|
-
*
|
|
322
|
-
* 프레임을 기다리면 호이스트가 이미 내려와 있는 인스턴스도 한 프레임 동안은 올라간
|
|
323
|
-
* 채로 그려진다. 3D 는 요청이 있어야 다시 그리므로 그 한 프레임이 언제 올지도 모른다.
|
|
324
|
-
*/
|
|
325
|
-
private seatParameters;
|
|
326
|
-
/**
|
|
327
|
-
* 모은 자세를 mesh 에 앉힌다.
|
|
328
|
-
*
|
|
329
|
-
* 중심을 지나는 축으로 돌게 하려면 돌린 뒤 중심이 제자리로 오도록 옮긴다.
|
|
330
|
-
*
|
|
331
|
-
* x' = R·S·(x − p) + p + t
|
|
332
|
-
* = R·S·x + (p + t − R·S·p)
|
|
333
|
-
*/
|
|
334
|
-
private applyPose;
|
|
335
|
-
/**
|
|
336
|
-
* 크기 반응이 걸린 부품을 세운다.
|
|
337
|
-
*
|
|
338
|
-
* 그릇을 저작한 자리에 놓고 그 안에 형상을 담는다. 그릇은 부모 배율을 그대로 받아
|
|
339
|
-
* 자리가 인스턴스를 따라가고, 되돌리는 배율은 그릇에 걸려 안쪽 크기를 지킨다.
|
|
340
|
-
*
|
|
341
|
-
* 복제본은 `updateDimension` 이 필요한 만큼 만든다 — 여기서는 하나만 두고 시작한다.
|
|
342
|
-
* 인스턴스 크기를 아직 모르기 때문이다.
|
|
343
|
-
*/
|
|
344
|
-
private buildSized;
|
|
345
|
-
/**
|
|
346
|
-
* 크기 반응을 지금 인스턴스 크기에 맞춘다.
|
|
347
|
-
*
|
|
348
|
-
* 되돌리는 배율은 그릇에 걸고, `repeat` 는 그릇 안의 복제본 수와 자리를 다시 잡는다.
|
|
349
|
-
* 복제본은 **버리지 않고 감춘다** — 크기를 끌 때마다 mesh 를 만들고 버리면 끄는 동안
|
|
350
|
-
* 계속 새 객체가 생긴다.
|
|
351
|
-
*/
|
|
352
|
-
private applySizing;
|
|
353
|
-
/**
|
|
354
|
-
* 인스턴스의 높이.
|
|
355
|
-
*
|
|
356
|
-
* 도면은 `left`·`top`·`width`·`height` 만 적는 것이 보통이고 `depth` 는 잘 적지
|
|
357
|
-
* 않는다. 그때 기본 높이(≈1)를 쓰면 `base.y` 로 나뉘어 형상이 납작하게 눌린다.
|
|
358
|
-
*
|
|
359
|
-
* **저작한 비례를 지킨다** — 평면 두 축이 커진 만큼 높이도 커진다. 배치 크기가
|
|
360
|
-
* 템플릿의 비율로 처리된다는 것이 이 뜻이다. 두 축의 기하평균을 쓰므로 한 축만 늘여도
|
|
361
|
-
* 덜 왜곡된다. `state.depth` 를 적었으면 그것이 이긴다.
|
|
362
|
-
*/
|
|
363
|
-
get effectiveDepth(): number;
|
|
364
|
-
/**
|
|
365
|
-
* 안 적었을 때 이 도형이 서는 높이 — **배치 기준이 그것을 말한다.**
|
|
366
|
-
*
|
|
367
|
-
* 청사진의 `placement` 는 좌표를 뒤집으라는 말이 아니라 **어느 면에 붙느냐**다. 컨베이어는
|
|
368
|
-
* 바닥에 서고 OHT 는 천장에 매달린다. 높이 값 자체는 도형이 모르고 현장이 안다
|
|
369
|
-
* (`sceneHeights`). ADR-0045(`operato-application/adr/ADR-0045.md`).
|
|
370
|
-
*
|
|
371
|
-
* 한동안 이 길이 없었다. `compile()` 이 `blueprint.placement` 를 적는데 이 폴더 전체에서
|
|
372
|
-
* 그 낱말을 읽는 곳이 0 건이었고, 천정 기준으로 저작한 OHT 를 도면에 놓으면 바닥에 섰다.
|
|
373
|
-
*
|
|
374
|
-
* **적은 값이 이긴다.** 저작자가 `zPos` 를 적었으면 그 자리다 — 기본값은 「안 정했을 때
|
|
375
|
-
* 어디인가」이지 「늘 어디여야 하는가」가 아니다.
|
|
376
|
-
*
|
|
377
|
-
* `zPos` 가 부피의 어느 면을 가리키는지는 씬의 좌표 모드가 정하므로(`geometricOffsetY`),
|
|
378
|
-
* 같은 천장 높이를 말하는 수가 모드마다 다르다. 바닥 기준이면 밑면, 중심 기준이면 중심,
|
|
379
|
-
* 천장 기준이면 윗면이다.
|
|
380
|
-
*
|
|
381
|
-
* `center` 에는 기본 높이가 없다. things-scene 이 아는 단은 바닥과 천장 둘뿐이고(ADR-0045),
|
|
382
|
-
* 「떠 있다」에는 표준 높이라는 것이 없다 — 드론이 몇 미터에 뜨는지는 그 도형의 일이 아니다.
|
|
383
|
-
* 저작자가 `zPos` 를 적을 자리다.
|
|
384
|
-
*/
|
|
385
|
-
get effectiveZPos(): number;
|
|
386
|
-
/**
|
|
387
|
-
* 인스턴스 치수를 **배율로만** 준다 — geometry 는 건드리지 않으므로 인스턴스가
|
|
388
|
-
* 늘어도 정점 버퍼가 늘지 않는다.
|
|
389
|
-
*
|
|
390
|
-
* **낱말이 갈리는 유일한 자리다.** 청사진은 3D 도구들의 축(`x` 오른쪽, `y` 위,
|
|
391
|
-
* `z` 앞)을 쓰고, 컴포넌트 state 는 2D 캔버스에서 온 낱말(`width`·`height` 가
|
|
392
|
-
* 평면, `depth` 가 높이)을 쓴다. 환산은 여기서 한 번만 한다.
|
|
393
|
-
*
|
|
394
|
-
* state.width ↔ base.x 평면 가로
|
|
395
|
-
* state.height ↔ base.z 평면 세로
|
|
396
|
-
* state.depth ↔ base.y 높이
|
|
397
|
-
*/
|
|
398
|
-
updateDimension(): void;
|
|
399
|
-
/**
|
|
400
|
-
* Figure 는 부품이 여럿이라 **하나의 폐다각형이 아니다.** 2D 표현은 컴포넌트가
|
|
401
|
-
* 부품마다 그리므로(`FigureInstance.render`) 여기서 윤곽을 지어내지 않는다.
|
|
402
|
-
* 경계상자를 돌려주면 부르는 쪽이 그것을 실제 윤곽으로 오해한다.
|
|
403
|
-
*/
|
|
404
|
-
topOutline(): TopOutline | null;
|
|
405
|
-
clear(): THREE.Object3D<THREE.Object3DEventMap>;
|
|
406
|
-
}
|
|
407
|
-
/**
|
|
408
|
-
* 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
|
|
409
|
-
* coordinate mode (`zPos` means the bottom in floor mode, the centre in space mode, the top when inverted). Shared by
|
|
410
|
-
* the V2 and V3 real objects -- a V3 OHT stood on the floor while only V2 read its placement (user, 2026-09-24).
|
|
411
|
-
*/
|
|
412
|
-
export declare function ceilingZPos(mode: 'floor' | 'space' | 'inverted', ceiling: number, depth: number): number;
|
|
413
|
-
//# sourceMappingURL=figure-real-object.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"figure-real-object.d.ts","sourceRoot":"","sources":["../../src/figure/figure-real-object.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import type { FigureBlueprint, FigureBlueprintGroup, FigureBlueprintMember } from './figure-blueprint.js';
|
|
2
|
-
/**
|
|
3
|
-
* 저작한 Figure 를 컴포넌트 타입에 매어 두는 곳.
|
|
4
|
-
*
|
|
5
|
-
* `Component.register(type, clazz)` 는 「이 타입은 이 클래스가 그린다」를 말한다. 여기는
|
|
6
|
-
* 그 옆에서 「이 타입은 이 청사진을 그린다」를 말한다. 둘이 짝이므로 `registerFigure()`
|
|
7
|
-
* 하나가 양쪽을 같이 한다 — 도면 모델은 `{ type: 'EQ_MIXER', left, top, width, height }`
|
|
8
|
-
* 만 적으면 되고, 청사진도 정본도 도면에 들어가지 않는다.
|
|
9
|
-
*
|
|
10
|
-
* 청사진은 도면과 **수명이 다르다.** 도면은 사람이 고치니 자주 바뀌고, Figure 는
|
|
11
|
-
* 타입 이름으로 불변하게 주소가 잡히니 오래 캐시된다. 한 문서에 섞으면 둘 다 짧은
|
|
12
|
-
* 쪽을 따라간다.
|
|
13
|
-
*/
|
|
14
|
-
/** 그리기 전에 한 번 풀어 둔 부품. 인스턴스마다 다시 풀지 않는다. */
|
|
15
|
-
export interface PreparedPart {
|
|
16
|
-
member: FigureBlueprintMember;
|
|
17
|
-
group: FigureBlueprintGroup;
|
|
18
|
-
/** 팔레트에서 해석한 색. */
|
|
19
|
-
color: string;
|
|
20
|
-
}
|
|
21
|
-
export interface PreparedGroup {
|
|
22
|
-
group: FigureBlueprintGroup;
|
|
23
|
-
color: string;
|
|
24
|
-
}
|
|
25
|
-
export interface PreparedFigure {
|
|
26
|
-
blueprint: FigureBlueprint;
|
|
27
|
-
/**
|
|
28
|
-
* 2D 로 그리는 순서 — **z 오름차순이며 묶음 순서가 아니다.**
|
|
29
|
-
*
|
|
30
|
-
* 묶음은 3D 의 것이다. 3D 는 깊이 버퍼가 앞뒤를 가려 주므로 재질별로 합쳐도 되지만,
|
|
31
|
-
* 2D 캔버스는 나중에 칠한 것이 위로 온다. 묶음 순서로 칠하면 아래에 있어야 할
|
|
32
|
-
* 부품이 위를 덮는다. 그래서 2D 는 z 순서를 따로 갖는다.
|
|
33
|
-
*
|
|
34
|
-
* 이 순서는 타입마다 한 번만 만든다 — 인스턴스가 몇이든 다시 정렬하지 않는다.
|
|
35
|
-
*/
|
|
36
|
-
paintOrder: PreparedPart[];
|
|
37
|
-
/** 3D 로 세울 묶음 — 재질별. */
|
|
38
|
-
groups: PreparedGroup[];
|
|
39
|
-
/** 이 값이 팔레트와 어긋나면 색을 다시 푼다. */
|
|
40
|
-
paletteVersion: number;
|
|
41
|
-
}
|
|
42
|
-
/** `figure-instance.ts` 가 부른다. 응용이 다른 클래스를 쓰고 싶으면 갈아 끼울 수 있다. */
|
|
43
|
-
export declare function useFigureComponent(clazz: unknown): void;
|
|
44
|
-
/**
|
|
45
|
-
* Figure 를 등록한다 — 청사진을 매어 두고 컴포넌트 타입도 함께 등록한다.
|
|
46
|
-
*
|
|
47
|
-
* 읽을 수 없는 청사진이면 **던진다.** 프레임마다 조용히 실패하는 대신 등록에서 한 번
|
|
48
|
-
* 크게 실패하는 편이, 무엇이 잘못됐는지 알기에 낫다.
|
|
49
|
-
*/
|
|
50
|
-
export declare function registerFigure(blueprint: FigureBlueprint): PreparedFigure;
|
|
51
|
-
/**
|
|
52
|
-
* 등록된 Figure 를 찾는다. 없으면 `null` — 빈 청사진으로 갈음하지 않는다.
|
|
53
|
-
*
|
|
54
|
-
* 팔레트가 바뀌었으면 색을 다시 푼 것을 돌려준다.
|
|
55
|
-
*/
|
|
56
|
-
/**
|
|
57
|
-
* Registers the component type for a figure with its capability names and placement, through the class
|
|
58
|
-
* `useFigureComponent` supplied. `registerFigure` does this for a V2 blueprint; the V3 registry does it for a V3
|
|
59
|
-
* asset. One seam, two callers (ADR-0087 decision 5).
|
|
60
|
-
*/
|
|
61
|
-
export declare function registerFigureType(type: string, capabilities?: readonly string[], placement?: string): void;
|
|
62
|
-
export declare function getFigure(type: string): PreparedFigure | null;
|
|
63
|
-
/** 등록된 Figure 타입 이름들. */
|
|
64
|
-
export declare function figureTypes(): string[];
|
|
65
|
-
export declare function hasFigure(type: string): boolean;
|
|
66
|
-
/**
|
|
67
|
-
* 등록을 지운다. 컴포넌트 타입 등록은 건드리지 않는다 — 지우면 도면에 이미 놓인
|
|
68
|
-
* 인스턴스가 세워지지 못한다. 청사진이 없으면 인스턴스가 자리 표시를 그린다.
|
|
69
|
-
*/
|
|
70
|
-
export declare function unregisterFigure(type: string): boolean;
|
|
71
|
-
/** 시험을 위해 전부 지운다. */
|
|
72
|
-
export declare function resetFigures(): void;
|
|
73
|
-
//# sourceMappingURL=figure-registry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"figure-registry.d.ts","sourceRoot":"","sources":["../../src/figure/figure-registry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,uBAAuB,CAAA;AAI9B;;;;;;;;;;;GAWG;AAEH,4CAA4C;AAC5C,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,qBAAqB,CAAA;IAC7B,KAAK,EAAE,oBAAoB,CAAA;IAC3B,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,oBAAoB,CAAA;IAC3B,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,eAAe,CAAA;IAC1B;;;;;;;;OAQG;IACH,UAAU,EAAE,YAAY,EAAE,CAAA;IAC1B,wBAAwB;IACxB,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,+BAA+B;IAC/B,cAAc,EAAE,MAAM,CAAA;CACvB;AAUD,iEAAiE;AACjE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAEvD;AA4BD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,eAAe,GAAG,cAAc,CAyBzE;AAED;;;;GAIG;AACH;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,GAAE,SAAS,MAAM,EAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAM/G;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAW7D;AAED,yBAAyB;AACzB,wBAAgB,WAAW,IAAI,MAAM,EAAE,CAEtC;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,qBAAqB;AACrB,wBAAgB,YAAY,IAAI,IAAI,CAEnC"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export { anchorOf, jointOriginPosition, REPEAT_LIMIT, needsOwnMesh, repeatOffset, repeatPlan, rotatedExtent, sizingPosition, sizingScale, stretchAxis, type InstanceScale } from '@hatiolab/figure-model';
|
|
2
|
-
export type { SizingAxis as FigureAxis } from '@hatiolab/figure-model';
|
|
3
|
-
//# sourceMappingURL=figure-sizing.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"figure-sizing.d.ts","sourceRoot":"","sources":["../../src/figure/figure-sizing.ts"],"names":[],"mappings":"AAuBA,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,WAAW,EACX,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAA;AAE/B,YAAY,EAAE,UAAU,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAA"}
|