@hatiolab/figure-model 0.1.2 → 0.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.
- package/CHANGELOG.md +11 -11
- package/README.md +9 -9
- package/dist/blueprint.d.ts +32 -3
- package/dist/blueprint.d.ts.map +1 -1
- package/dist/blueprint.js +76 -6
- package/dist/blueprint.js.map +1 -1
- package/dist/cost-chart.d.ts +1 -1
- package/dist/cost-chart.js +2 -2
- package/dist/cost.d.ts +4 -4
- package/dist/cost.d.ts.map +1 -1
- package/dist/cost.js +2 -2
- package/dist/cost.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/keys.d.ts +2 -2
- package/dist/keys.js +3 -3
- package/dist/keys.js.map +1 -1
- package/dist/types.d.ts +53 -28
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +22 -10
- package/dist/types.js.map +1 -1
- package/dist/validate.d.ts +1 -1
- package/dist/validate.js +7 -7
- package/dist/validate.js.map +1 -1
- package/docs/design.md +3 -3
- package/docs/format-survey.md +3 -3
- package/docs/format.md +18 -18
- package/docs/validation.md +5 -5
- package/package.json +1 -1
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** 저작에 쓰는 프리미티브. mesh 계열과 extrude 계열로
|
|
1
|
+
/** 저작에 쓰는 프리미티브. mesh 계열과 extrude 계열로 나뉜다. */
|
|
2
2
|
export declare const PRIMITIVE_KINDS: readonly ["cube", "wall", "cylinder", "sphere", "rect", "polygon"];
|
|
3
3
|
export type PrimitiveKind = (typeof PRIMITIVE_KINDS)[number];
|
|
4
4
|
/** extrude 계열은 2D 단면이 필요하다. */
|
|
@@ -26,7 +26,19 @@ export type MaterialPreset = (typeof MATERIAL_PRESETS)[number];
|
|
|
26
26
|
*/
|
|
27
27
|
export declare const SIZING_RULES: readonly ["scale", "fixed", "stretch", "repeat"];
|
|
28
28
|
export type SizingRule = (typeof SIZING_RULES)[number];
|
|
29
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* 디테일 등급 — 이 형상을 얼마나 상세하게 만들 것인지 저작자가 밝히는 값.
|
|
31
|
+
*
|
|
32
|
+
* S 단순 표지 · 기둥처럼 형태가 단순한 것
|
|
33
|
+
* M 보통 대부분의 설비
|
|
34
|
+
* L 상세 화면의 주역이 되는 큰 설비
|
|
35
|
+
*
|
|
36
|
+
* 밝힌 등급이 부품 수 상한을 정한다. 그리고 성숙도가 그 등급에 걸맞게 만들어졌는지
|
|
37
|
+
* 본다. 등급만 L 로 올려 놓고 부품 셋으로 끝내면 밝힌 것과 만든 것이 다르다.
|
|
38
|
+
*
|
|
39
|
+
* **뜻을 여기 적어 두는 이유가 있다.** 한동안 이 값의 내용물이 부품 수 상한 하나뿐이었다.
|
|
40
|
+
* 그래서 "왜 L 인가" 에 답할 수가 없었고, 저작 화면도 등급이라는 글자만 보여 주었다.
|
|
41
|
+
*/
|
|
30
42
|
export declare const DETAIL_LEVELS: readonly ["S", "M", "L"];
|
|
31
43
|
export type DetailLevel = (typeof DETAIL_LEVELS)[number];
|
|
32
44
|
/** 등급별 부품 수 상한. */
|
|
@@ -57,19 +69,19 @@ export interface Point2 {
|
|
|
57
69
|
*
|
|
58
70
|
* **`x` 오른쪽, `y` 위, `z` 앞(보는 쪽).** glTF·three.js·Unity 와 같다.
|
|
59
71
|
*
|
|
60
|
-
* 전에는 things-scene 컴포넌트 state 의
|
|
61
|
-
*
|
|
62
|
-
* 위이고,
|
|
63
|
-
*
|
|
72
|
+
* 전에는 things-scene 컴포넌트 state 의 용어를 그대로 가져와 `z` 를 위로 두었다. 그
|
|
73
|
+
* 용어는 2D 캔버스에서 온 것이지 3D 규약이 아니다. things-scene 의 3D 세계는 y 가
|
|
74
|
+
* 위이고, 불러온 glTF 모델도 축을 돌리지 않고 그대로 쓴다. 도형 안쪽 좌표까지 캔버스
|
|
75
|
+
* 용어를 따를 이유가 없어서 되돌렸다.
|
|
64
76
|
*
|
|
65
|
-
* ##
|
|
77
|
+
* ## 용어도 모델러가 쓰는 그대로다
|
|
66
78
|
*
|
|
67
79
|
* `position`·`rotation`·`size` 셋이고 저마다 X·Y·Z 를 갖는다. Blender 의
|
|
68
80
|
* Location·Rotation·Dimensions, Godot 의 Position·Rotation·Size, glTF 의
|
|
69
81
|
* translation·rotation·scale 과 같은 짜임이다.
|
|
70
82
|
*
|
|
71
|
-
* `width`·`height`·`depth` 는 쓰지 않는다. 그
|
|
72
|
-
*
|
|
83
|
+
* `width`·`height`·`depth` 는 쓰지 않는다. 그 용어들은 **어느 축인지를 따로 외워야
|
|
84
|
+
* 한다.** 축을 되돌린 원인이 바로 그것이었다.
|
|
73
85
|
*
|
|
74
86
|
* 보드 컴포넌트의 state 는 여전히 `width`·`height`·`depth` 이고 축 배정도 다르다.
|
|
75
87
|
* 그 환산은 그리는 쪽 경계 한 곳에서 한다. 형식 안에서는 축이 한 뜻이다.
|
|
@@ -138,8 +150,8 @@ export interface PartMaterial {
|
|
|
138
150
|
/**
|
|
139
151
|
* 면을 각지게 그리나. **없으면 각지게 그린다(`true`).**
|
|
140
152
|
*
|
|
141
|
-
* 기본값을
|
|
142
|
-
* 두었는데, 저작 화면의 체크상자는 값이 없으면 꺼진 것으로
|
|
153
|
+
* 기본값을 여기에 정해 둔다. 전에는 형식에 기본값이 없고 그리는 쪽만 `?? true` 로
|
|
154
|
+
* 두었는데, 저작 화면의 체크상자는 값이 없으면 꺼진 것으로 보였다. **적힌 것과
|
|
143
155
|
* 보이는 것이 달랐다.**
|
|
144
156
|
*
|
|
145
157
|
* 각진 것이 기본인 이유는 저폴리의 생김새가 거기서 나오기 때문이다. 12 분할 원기둥을
|
|
@@ -155,16 +167,29 @@ export interface PartMaterial {
|
|
|
155
167
|
*/
|
|
156
168
|
surface?: PartSurface;
|
|
157
169
|
}
|
|
158
|
-
/** `sizing === 'repeat'` 일 때
|
|
170
|
+
/** `sizing === 'repeat'` 일 때 늘어나는 축과 간격. */
|
|
159
171
|
export interface RepeatSpec {
|
|
160
172
|
axis: Axis;
|
|
161
|
-
/**
|
|
162
|
-
|
|
173
|
+
/**
|
|
174
|
+
* 한 칸 — **중심에서 다음 중심까지의 거리**다. 부품 크기와 무관하다.
|
|
175
|
+
*
|
|
176
|
+
* 전에는 "부품 사이 빈 틈" 이었다. 그러면 한 칸이 `부품 크기 + 틈` 이 되어, 부품을
|
|
177
|
+
* 굵게 하거나 돌릴 때마다 줄 전체가 다시 깔린다. 롤러를 30° 기울였더니 축 방향
|
|
178
|
+
* 경계상자가 96 에서 343 으로 늘어 개수가 16 에서 6 으로 무너졌다. 기울어진 롤러
|
|
179
|
+
* 둘은 빗살처럼 나란히 놓이므로 그렇게 벌릴 이유가 없는데도 그랬다.
|
|
180
|
+
*
|
|
181
|
+
* 현장이 말하는 방식이기도 하다 — 컨베이어는 "롤러 피치 150", 선반은 "단 피치" 다.
|
|
182
|
+
* 틈으로 말하는 경우가 없다.
|
|
183
|
+
*
|
|
184
|
+
* 부품 크기보다 작게 두면 사본이 겹친다. 막지 않는다 — 빗살처럼 겹쳐 까는 것이
|
|
185
|
+
* 그 자체로 쓰임이다.
|
|
186
|
+
*/
|
|
187
|
+
pitch: number;
|
|
163
188
|
}
|
|
164
189
|
/**
|
|
165
190
|
* 애니메이션 포인트.
|
|
166
191
|
*
|
|
167
|
-
* `pivot` 을 적지 않으면
|
|
192
|
+
* `pivot` 을 적지 않으면 회전축이 부품 자기 중심이 된다.
|
|
168
193
|
* `threed/real-object-extrude.ts:98` 의 `geometry.center()` 때문이다. 교반 축이
|
|
169
194
|
* 몸체 가운데를 돌아야 하면 피봇을 명시해야 한다.
|
|
170
195
|
*/
|
|
@@ -191,7 +216,7 @@ export interface PartShape {
|
|
|
191
216
|
export interface FigurePart {
|
|
192
217
|
/**
|
|
193
218
|
* 부품 이름. **저장되는 식별자다** — 바인딩·애니메이션·슬롯이 이 이름을 가리킨다.
|
|
194
|
-
* 바꾸면 인스턴스의 바인딩이
|
|
219
|
+
* 바꾸면 인스턴스의 바인딩이 오류보고없이 끊긴다.
|
|
195
220
|
*/
|
|
196
221
|
name: string;
|
|
197
222
|
primitive: PrimitiveKind;
|
|
@@ -208,20 +233,20 @@ export interface FigurePart {
|
|
|
208
233
|
animation?: AnimationPoint;
|
|
209
234
|
label?: LabelSpec;
|
|
210
235
|
}
|
|
211
|
-
/** 저작
|
|
236
|
+
/** 저작 결과. 편집 가능한 원본 데이터. */
|
|
212
237
|
export interface FigureSource {
|
|
213
238
|
/** 컴포넌트 타입 이름. **저장되는 식별자다.** */
|
|
214
239
|
type: string;
|
|
215
240
|
/**
|
|
216
241
|
* 기준 크기. 배치 크기는 이 비율에서 산출된다.
|
|
217
242
|
*
|
|
218
|
-
* 부품과 같은
|
|
219
|
-
* 배정도 달라서, 그리는 쪽 경계에서 한 번
|
|
243
|
+
* 부품과 같은 축이다. `base.y` 가 높이다. 보드 컴포넌트의 state 는 용어도 축
|
|
244
|
+
* 배정도 달라서, 그리는 쪽 경계에서 한 번 변환해 받는다.
|
|
220
245
|
*/
|
|
221
246
|
base: Vec3;
|
|
222
247
|
anchor?: Vec3;
|
|
223
248
|
detailLevel?: DetailLevel;
|
|
224
|
-
/** StyleKit 참조. 팔레트·분할 수·그리드·등급을 한
|
|
249
|
+
/** StyleKit 참조. 팔레트·분할 수·그리드·등급을 한 번에 받는다. */
|
|
225
250
|
styleKit?: string;
|
|
226
251
|
parts: FigurePart[];
|
|
227
252
|
}
|
|
@@ -237,7 +262,7 @@ export interface BlueprintMember {
|
|
|
237
262
|
* 곡면의 분할 수. `SEGMENTED_PRIMITIVES` 인 부품에만 있다.
|
|
238
263
|
*
|
|
239
264
|
* `geometryKey` 안에도 들어 있지만 키는 문자열이라 다시 파싱해야 한다. 그리는 쪽이
|
|
240
|
-
* 2D 톱뷰를 3D 와 **같은 분할 수**로 근사하려면 이 값이 필요하므로 따로
|
|
265
|
+
* 2D 톱뷰를 3D 와 **같은 분할 수**로 근사하려면 이 값이 필요하므로 따로 제공한다.
|
|
241
266
|
*/
|
|
242
267
|
segments?: number;
|
|
243
268
|
sizing: SizingRule;
|
|
@@ -257,7 +282,7 @@ export interface BlueprintGroup {
|
|
|
257
282
|
materialKey: string;
|
|
258
283
|
material: PartMaterial;
|
|
259
284
|
slot?: MaterialSlot;
|
|
260
|
-
/** 애니메이션 포인트에
|
|
285
|
+
/** 애니메이션 포인트에 연결된 그룹인지. 연결된 그룹은 부품을 하나만 갖는다. */
|
|
261
286
|
animated: boolean;
|
|
262
287
|
members: BlueprintMember[];
|
|
263
288
|
}
|
|
@@ -285,8 +310,8 @@ export interface Violation {
|
|
|
285
310
|
* 값으로 좁혀져 있어, 코드를 새로 쓰면 타입 검사가 막는다.
|
|
286
311
|
*
|
|
287
312
|
* 목록을 두는 이유는 소비처 때문이다. 오류를 사용자에게 보이는 쪽은 코드마다 문구와
|
|
288
|
-
* 처리를 정해야 하는데, 코드가
|
|
289
|
-
* `docs/validation.md` 에 있고, 문서와 이 목록이 어긋나면
|
|
313
|
+
* 처리를 정해야 하는데, 코드가 늘어난 것이 알려지지 않으면 그 대응이 빠진다. 뜻은
|
|
314
|
+
* `docs/validation.md` 에 있고, 문서와 이 목록이 어긋나면 테스트가 실패한다.
|
|
290
315
|
*/
|
|
291
316
|
export declare const ERROR_CODES: readonly ["not-object", "not-finite", "not-positive", "not-integer", "not-boolean", "not-allowed", "missing-type", "missing-base", "missing-parts", "bad-style-kit", "missing-name", "duplicate-name", "missing-transform", "missing-position", "missing-size", "too-few-segments", "missing-shape-path", "bad-shape-point", "missing-material", "material-unresolvable", "missing-repeat", "missing-axis", "missing-pivot", "missing-surface-ref", "missing-label-name", "missing-label-source"];
|
|
292
317
|
export type ErrorCode = (typeof ERROR_CODES)[number];
|
|
@@ -310,7 +335,7 @@ export interface FigureBlueprint {
|
|
|
310
335
|
anchor?: Vec3;
|
|
311
336
|
/**
|
|
312
337
|
* 디테일 등급. **부품 수 한도가 여기서 나온다** — 소비처가 「이 Figure 가 예산 안에
|
|
313
|
-
* 있나」를 판단하려면 등급을 알아야 한다.
|
|
338
|
+
* 있나」를 판단하려면 등급을 알아야 한다. 원본에 지정되지 않았으면 없다.
|
|
314
339
|
*/
|
|
315
340
|
detailLevel?: DetailLevel;
|
|
316
341
|
budget: {
|
|
@@ -326,7 +351,7 @@ export interface FigureBlueprint {
|
|
|
326
351
|
/**
|
|
327
352
|
* 보드 모델에 저장되는 인스턴스.
|
|
328
353
|
*
|
|
329
|
-
*
|
|
354
|
+
* **다른 컴포넌트와 같은 형태다.** 청사진도 원본 데이터도 보드에 들어가지 않는다.
|
|
330
355
|
* `type` 이 청사진을 찾는 키이고, 청사진은 실행 시점에 바깥에서 받아 이미 알고 있다.
|
|
331
356
|
*
|
|
332
357
|
* ```json
|
|
@@ -334,9 +359,9 @@ export interface FigureBlueprint {
|
|
|
334
359
|
* "zPos": 0, "tag": "EQ-003" }
|
|
335
360
|
* ```
|
|
336
361
|
*
|
|
337
|
-
* 이렇게 두는
|
|
362
|
+
* 이렇게 두는 이유는 세 가지다.
|
|
338
363
|
*
|
|
339
|
-
* 1. 보드가
|
|
364
|
+
* 1. 보드가 커지지 않는다. 자산 500 개의 부품 원본 데이터를 보드에 넣으면 크기가 크게 늘어난다.
|
|
340
365
|
* 2. Figure 를 고치면 배치된 것에 반영된다. 보드에 사본이 없으므로.
|
|
341
366
|
* 3. **보드는 이것이 저작된 자산인지 코드로 만든 컴포넌트인지 알 필요가 없다.**
|
|
342
367
|
* `Component.register` 로 타입이 등록되므로 여느 타입처럼 다룬다.
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAqBA,8CAA8C;AAC9C,eAAO,MAAM,eAAe,oEAAqE,CAAA;AACjG,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AAE5D,+BAA+B;AAC/B,eAAO,MAAM,kBAAkB,EAAE,SAAS,aAAa,EAAwB,CAAA;AAE/E,oCAAoC;AACpC,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAA2C,CAAA;AAE/F,kCAAkC;AAClC,eAAO,MAAM,oBAAoB,EAAE,SAAS,aAAa,EAA2B,CAAA;AAEpF;;;GAGG;AACH,eAAO,MAAM,cAAc,0BAA2B,CAAA;AACtD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE1D,0DAA0D;AAC1D,eAAO,MAAM,gBAAgB,gFAAiF,CAAA;AAC9G,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE9D;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,kDAAmD,CAAA;AAC5E,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAEtD
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* Copyright © HatioLab Inc. All rights reserved.
|
|
3
3
|
*
|
|
4
|
-
* Figure 계약 — 저작 결과(
|
|
4
|
+
* Figure 계약 — 저작 결과(원본)와 보드가 소비하는 산출물(청사진)의 형식.
|
|
5
5
|
*
|
|
6
6
|
* **이 모듈은 의존이 없다.** things-scene 의 Component·THREE 를 쓰지 않는 순수
|
|
7
7
|
* 데이터 정의이므로, 서버·클라이언트·저작도구가 모두 같은 형식을 본다. 필요하면
|
|
8
8
|
* 별도 패키지로 떼어낼 수 있다.
|
|
9
9
|
*
|
|
10
|
-
* 두
|
|
10
|
+
* 형식은 두 가지다.
|
|
11
11
|
*
|
|
12
|
-
* FigureSource 저작 결과. 편집 가능한
|
|
13
|
-
* FigureBlueprint 보드가
|
|
12
|
+
* FigureSource 저작 결과. 편집 가능한 원본. DB 에 저장된다.
|
|
13
|
+
* FigureBlueprint 보드가 렌더링하는 형태. 원본에서 파생되는 캐시. 저장하지 않는다.
|
|
14
14
|
*
|
|
15
15
|
* 청사진은 2D 와 3D 를 한 구조로 다룬다 — 재질별로 묶고(`groups`), 3D 는 그
|
|
16
16
|
* 묶음의 geometry 를 합쳐 draw call 을 줄이고, 2D 는 윤곽을 합쳐 `fill()` 호출을
|
|
17
|
-
* 줄인다. 병목이 양쪽 다
|
|
17
|
+
* 줄인다. 병목이 양쪽 다 "묶음 수"이므로 같은 병합으로 양쪽이 함께 이득을 본다.
|
|
18
18
|
*
|
|
19
19
|
* 설계 문서: things-scene/docs/plans/figure-blueprint.md
|
|
20
20
|
*/
|
|
21
|
-
/** 저작에 쓰는 프리미티브. mesh 계열과 extrude 계열로
|
|
21
|
+
/** 저작에 쓰는 프리미티브. mesh 계열과 extrude 계열로 나뉜다. */
|
|
22
22
|
export const PRIMITIVE_KINDS = ['cube', 'wall', 'cylinder', 'sphere', 'rect', 'polygon'];
|
|
23
23
|
/** extrude 계열은 2D 단면이 필요하다. */
|
|
24
24
|
export const EXTRUDE_PRIMITIVES = ['rect', 'polygon'];
|
|
@@ -42,7 +42,19 @@ export const MATERIAL_PRESETS = ['default', 'metal', 'glass', 'plastic', 'wood',
|
|
|
42
42
|
* repeat 개수가 늘어난다. 롤러·선반 단 ← 새 geometry 가 생기지 않는다
|
|
43
43
|
*/
|
|
44
44
|
export const SIZING_RULES = ['scale', 'fixed', 'stretch', 'repeat'];
|
|
45
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* 디테일 등급 — 이 형상을 얼마나 상세하게 만들 것인지 저작자가 밝히는 값.
|
|
47
|
+
*
|
|
48
|
+
* S 단순 표지 · 기둥처럼 형태가 단순한 것
|
|
49
|
+
* M 보통 대부분의 설비
|
|
50
|
+
* L 상세 화면의 주역이 되는 큰 설비
|
|
51
|
+
*
|
|
52
|
+
* 밝힌 등급이 부품 수 상한을 정한다. 그리고 성숙도가 그 등급에 걸맞게 만들어졌는지
|
|
53
|
+
* 본다. 등급만 L 로 올려 놓고 부품 셋으로 끝내면 밝힌 것과 만든 것이 다르다.
|
|
54
|
+
*
|
|
55
|
+
* **뜻을 여기 적어 두는 이유가 있다.** 한동안 이 값의 내용물이 부품 수 상한 하나뿐이었다.
|
|
56
|
+
* 그래서 "왜 L 인가" 에 답할 수가 없었고, 저작 화면도 등급이라는 글자만 보여 주었다.
|
|
57
|
+
*/
|
|
46
58
|
export const DETAIL_LEVELS = ['S', 'M', 'L'];
|
|
47
59
|
/** 등급별 부품 수 상한. */
|
|
48
60
|
export const PART_LIMIT = { S: 3, M: 8, L: 20 };
|
|
@@ -74,8 +86,8 @@ export const BLUEPRINT_VERSION = 1;
|
|
|
74
86
|
* 값으로 좁혀져 있어, 코드를 새로 쓰면 타입 검사가 막는다.
|
|
75
87
|
*
|
|
76
88
|
* 목록을 두는 이유는 소비처 때문이다. 오류를 사용자에게 보이는 쪽은 코드마다 문구와
|
|
77
|
-
* 처리를 정해야 하는데, 코드가
|
|
78
|
-
* `docs/validation.md` 에 있고, 문서와 이 목록이 어긋나면
|
|
89
|
+
* 처리를 정해야 하는데, 코드가 늘어난 것이 알려지지 않으면 그 대응이 빠진다. 뜻은
|
|
90
|
+
* `docs/validation.md` 에 있고, 문서와 이 목록이 어긋나면 테스트가 실패한다.
|
|
79
91
|
*/
|
|
80
92
|
export const ERROR_CODES = [
|
|
81
93
|
// 형태
|
|
@@ -85,7 +97,7 @@ export const ERROR_CODES = [
|
|
|
85
97
|
'not-integer',
|
|
86
98
|
'not-boolean',
|
|
87
99
|
'not-allowed',
|
|
88
|
-
//
|
|
100
|
+
// 원본의 필수 항목
|
|
89
101
|
'missing-type',
|
|
90
102
|
'missing-base',
|
|
91
103
|
'missing-parts',
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,8CAA8C;AAC9C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAU,CAAA;AAGjG,+BAA+B;AAC/B,MAAM,CAAC,MAAM,kBAAkB,GAA6B,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;AAE/E,oCAAoC;AACpC,MAAM,CAAC,MAAM,eAAe,GAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;AAE/F,kCAAkC;AAClC,MAAM,CAAC,MAAM,oBAAoB,GAA6B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;AAEpF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,CAAU,CAAA;AAGtD,0DAA0D;AAC1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAA;AAG9G;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAA;AAG5E
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/validate.d.ts
CHANGED
package/dist/validate.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* Copyright © HatioLab Inc. All rights reserved.
|
|
3
3
|
*
|
|
4
|
-
* Figure
|
|
4
|
+
* Figure 원본 데이터 검증.
|
|
5
5
|
*
|
|
6
6
|
* 두 갈래로 돌려준다.
|
|
7
7
|
*
|
|
@@ -204,7 +204,7 @@ function validatePart(c, raw, index, seen) {
|
|
|
204
204
|
}
|
|
205
205
|
else {
|
|
206
206
|
c.oneOf(raw.repeat.axis, AXES, `${path}.repeat.axis`, 'repeat.axis');
|
|
207
|
-
c.positive(raw.repeat.
|
|
207
|
+
c.positive(raw.repeat.pitch, `${path}.repeat.pitch`, 'repeat.pitch');
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
210
|
else if (raw.repeat !== undefined) {
|
|
@@ -223,10 +223,10 @@ function validatePart(c, raw, index, seen) {
|
|
|
223
223
|
if (kindOk && a.kind === 'rotation' && a.axis === undefined) {
|
|
224
224
|
c.error('missing-axis', `${path}.animation.axis`, '회전은 축이 있어야 한다');
|
|
225
225
|
}
|
|
226
|
-
// 피봇을 적지 않으면 부품 자기
|
|
226
|
+
// 피봇을 적지 않으면 회전축이 부품 자기 중심이 된다. geometry.center() 때문
|
|
227
227
|
if (kindOk && PIVOT_REQUIRED.includes(a.kind)) {
|
|
228
228
|
if (a.pivot === undefined) {
|
|
229
|
-
c.error('missing-pivot', `${path}.animation.pivot`, '회전은 피봇이 있어야
|
|
229
|
+
c.error('missing-pivot', `${path}.animation.pivot`, '회전은 피봇이 있어야 한다. 없으면 회전축이 부품 자기 중심이 된다');
|
|
230
230
|
}
|
|
231
231
|
else {
|
|
232
232
|
validateVec3(c, a.pivot, `${path}.animation.pivot`, 'pivot');
|
|
@@ -255,7 +255,7 @@ function validatePart(c, raw, index, seen) {
|
|
|
255
255
|
}
|
|
256
256
|
function checkPolicy(c, source) {
|
|
257
257
|
const parts = source.parts;
|
|
258
|
-
//
|
|
258
|
+
// 등급. 없으면 예산을 잡을 수 없다. 오류보고없이 넘기지 않는다.
|
|
259
259
|
if (source.detailLevel === undefined) {
|
|
260
260
|
c.violate('detail-level-missing', '디테일 등급이 없다 — 부품 수 예산을 잡을 수 없다');
|
|
261
261
|
}
|
|
@@ -292,7 +292,7 @@ function checkPolicy(c, source) {
|
|
|
292
292
|
}
|
|
293
293
|
}
|
|
294
294
|
/**
|
|
295
|
-
*
|
|
295
|
+
* 원본 데이터를 검증한다.
|
|
296
296
|
*
|
|
297
297
|
* 바깥에서 온 데이터(DB · API · 파일)를 받으므로 `unknown` 을 받는다.
|
|
298
298
|
* `errors` 가 비어 있으면 `source` 는 `FigureSource` 로 다룰 수 있다.
|
|
@@ -300,7 +300,7 @@ function checkPolicy(c, source) {
|
|
|
300
300
|
export function validate(source) {
|
|
301
301
|
const c = new Collector();
|
|
302
302
|
if (!isObject(source)) {
|
|
303
|
-
c.error('not-object', '', '
|
|
303
|
+
c.error('not-object', '', '원본 데이터는 객체여야 한다');
|
|
304
304
|
return { errors: c.errors, violations: c.violations };
|
|
305
305
|
}
|
|
306
306
|
if (!isNonEmptyString(source.type)) {
|
package/dist/validate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EACL,eAAe,EACf,IAAI,EACJ,aAAa,EACb,WAAW,EACX,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,aAAa,EAOd,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAUtC,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AACjE,CAAC;AAED,SAAS,cAAc,CAAC,CAAU;IAChC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AACpD,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAU;IAClC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;AACrD,CAAC;AAED,MAAM,SAAS;IACJ,MAAM,GAAkB,EAAE,CAAA;IAC1B,UAAU,GAAgB,EAAE,CAAA;IAErC,KAAK,CAAC,IAAe,EAAE,IAAY,EAAE,OAAe;QAClD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IAC3C,CAAC;IAED,OAAO,CAAC,IAAmB,EAAE,OAAe,EAAE,MAAe,EAAE,KAAc;QAC3E,MAAM,CAAC,GAAc,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;QACtC,IAAI,MAAM,KAAK,SAAS;YAAE,CAAC,CAAC,MAAM,GAAG,MAAM,CAAA;QAC3C,IAAI,KAAK,KAAK,SAAS;YAAE,CAAC,CAAC,KAAK,GAAG,KAAK,CAAA;QACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACzB,CAAC;IAED,sCAAsC;IACtC,MAAM,CAAC,CAAU,EAAE,IAAY,EAAE,KAAa;QAC5C,IAAI,cAAc,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;QAClC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,cAAc,CAAC,CAAA;QACtD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,YAAY;IACZ,QAAQ,CAAC,CAAU,EAAE,IAAY,EAAE,KAAa;QAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QAC9C,IAAK,CAAY,GAAG,CAAC;YAAE,OAAO,IAAI,CAAA;QAClC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE,GAAG,KAAK,cAAc,CAAC,CAAA;QACxD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,cAAc;IACd,KAAK,CAAmB,CAAU,EAAE,OAAqB,EAAE,IAAY,EAAE,KAAa;QACpF,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAK,OAA6B,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;QACpF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QAC7E,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AAED,SAAS,YAAY,CAAC,CAAY,EAAE,CAAU,EAAE,IAAY,EAAE,KAAa;IACzE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACjB,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,qBAAqB,CAAC,CAAA;QAC1D,OAAM;IACR,CAAC;IACD,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC,CAAA;IACxC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC,CAAA;IACxC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC,CAAA;AAC1C,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAY,EAAE,IAA6B,EAAE,IAAY;IAClF,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAA;IACxB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACjB,CAAC,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,IAAI,YAAY,EAAE,gBAAgB,CAAC,CAAA;QACnE,OAAM;IACR,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,IAAI,qBAAqB,EAAE,eAAe,CAAC,CAAA;IAC5E,CAAC;SAAM,CAAC;QACN,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,qBAAqB,EAAE,UAAU,CAAC,CAAA;IACvE,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAA;IACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,IAAI,iBAAiB,EAAE,WAAW,CAAC,CAAA;IAChE,CAAC;SAAM,CAAC;QACN,qDAAqD;QACrD,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,mBAAmB,EAAE,QAAQ,CAAC,CAAA;QACxD,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,mBAAmB,EAAE,QAAQ,CAAC,CAAA;QACxD,IAAI,IAAI,CAAC,CAAC,KAAK,SAAS;YAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,mBAAmB,EAAE,QAAQ,CAAC,CAAA;;YAC3E,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,IAAI,mBAAmB,EAAE,6BAA6B,CAAC,CAAA;IACzF,CAAC;IAED,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,IAAI,qBAAqB,EAAE,oBAAoB,CAAC,CAAA;QAC3E,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAI,CAAC,CAAC,QAAoC,CAAC,IAAI,CAAC,CAAA;gBAC3D,IAAI,KAAK,KAAK,SAAS;oBAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,uBAAuB,IAAI,EAAE,EAAE,YAAY,IAAI,EAAE,CAAC,CAAA;YACpG,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,CAAY,EAAE,GAAY,EAAE,KAAa,EAAE,IAAiB;IAChF,MAAM,IAAI,GAAG,SAAS,KAAK,GAAG,CAAA;IAE9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,aAAa,CAAC,CAAA;QAC1C,OAAM;IACR,CAAC;IAED,iBAAiB;IACjB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,IAAI,OAAO,EAAE,mCAAmC,CAAC,CAAA;IAC9E,CAAC;SAAM,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,IAAI,OAAO,EAAE,eAAe,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;IACtE,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,IAAI,YAAY,EAAE,WAAW,CAAC,CAAA;IAC7F,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAE/B,6BAA6B;IAC7B,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrE,CAAC,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,IAAI,WAAW,EAAE,oBAAoB,CAAC,CAAA;QAClE,CAAC;aAAM,IAAI,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAC7C,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,IAAI,WAAW,EAAE,cAAc,MAAM,CAAC,WAAW,WAAW,CAAC,CAAA;QAC9F,CAAC;aAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnD,CAAC,CAAC,OAAO,CACP,qBAAqB,EACrB,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,GAAG,CAAC,QAAQ,UAAU,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EACvF,GAAG,CAAC,QAAQ,CACb,CAAA;QACH,CAAC;QACD,IAAI,WAAW,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAkB,CAAC,EAAE,CAAC;YAC1E,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,SAAS,iBAAiB,CAAC,CAAA;QACvF,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;QACvB,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;QAC3D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,CAAC,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,IAAI,aAAa,EAAE,+BAA+B,CAAC,CAAA;QACtF,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC1B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjE,CAAC,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,IAAI,eAAe,CAAC,GAAG,EAAE,0BAA0B,CAAC,CAAA;gBACpF,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,IAAI,WAAW,EAAE,eAAe,CAAC,CAAA;IAClE,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAA;QACtB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACzD,CAAC,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,IAAI,WAAW,EAAE,8BAA8B,CAAC,CAAA;QACtF,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;YAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,kBAAkB,EAAE,QAAQ,CAAC,CAAA;QACpG,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACtE,CAAC,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,IAAI,uBAAuB,EAAE,0BAA0B,CAAC,CAAA;QACpF,CAAC;QACD,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACtE,CAAC,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,IAAI,uBAAuB,EAAE,0BAA0B,CAAC,CAAA;QACpF,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAA;YACnB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjB,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,IAAI,mBAAmB,EAAE,mBAAmB,CAAC,CAAA;YACxE,CAAC;iBAAM,CAAC;gBACN,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,IAAI,wBAAwB,EAAE,MAAM,CAAC,CAAA;gBACvE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7B,CAAC,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,IAAI,uBAAuB,EAAE,uBAAuB,CAAC,CAAA;gBACzF,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;QAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,IAAI,OAAO,EAAE,MAAM,CAAC,CAAA;IACrF,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;QAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,SAAS,EAAE,QAAQ,CAAC,CAAA;IAE3F,gCAAgC;IAChC,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,IAAI,SAAS,EAAE,oCAAoC,CAAC,CAAA;QACnF,CAAC;aAAM,CAAC;YACN,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,cAAc,EAAE,aAAa,CAAC,CAAA;YACpE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,aAAa,EAAE,YAAY,CAAC,CAAA;QAChE,CAAC;IACH,CAAC;SAAM,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACpC,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI,4CAA4C,CAAC,CAAA;IAC9F,CAAC;IAED,YAAY;IACZ,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,IAAI,YAAY,EAAE,qBAAqB,CAAC,CAAA;QACnE,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,GAAG,CAAC,SAAS,CAAA;YACvB,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,IAAI,iBAAiB,EAAE,gBAAgB,CAAC,CAAA;YAC3F,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;gBAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,iBAAiB,EAAE,gBAAgB,CAAC,CAAA;YAE3F,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5D,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,IAAI,iBAAiB,EAAE,eAAe,CAAC,CAAA;YACpE,CAAC;YACD,kDAAkD;YAClD,IAAI,MAAM,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAa,CAAC,EAAE,CAAC;gBACvD,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC1B,CAAC,CAAC,KAAK,CACL,eAAe,EACf,GAAG,IAAI,kBAAkB,EACzB,oCAAoC,CACrC,CAAA;gBACH,CAAC;qBAAM,CAAC;oBACN,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,kBAAkB,EAAE,OAAO,CAAC,CAAA;gBAC9D,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACjC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,kBAAkB,EAAE,OAAO,CAAC,CAAA;YAC9D,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK;IACL,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,IAAI,QAAQ,EAAE,iBAAiB,CAAC,CAAA;QAC3D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtC,CAAC,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,IAAI,aAAa,EAAE,iBAAiB,CAAC,CAAA;YACxE,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,CAAC,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,IAAI,eAAe,EAAE,iCAAiC,CAAC,CAAA;YAC5F,CAAC;YACD,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,aAAa,EAAE,YAAY,CAAC,CAAA;QAC1E,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,CAAY,EAAE,MAAoB;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;IAE1B,qCAAqC;IACrC,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACrC,CAAC,CAAC,OAAO,CAAC,sBAAsB,EAAE,+BAA+B,CAAC,CAAA;IACpE,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAC5C,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;YACzB,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,MAAM,CAAC,WAAW,iBAAiB,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAC7F,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAA;IAC7D,IAAI,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QAC7C,CAAC,CAAC,OAAO,CACP,2BAA2B,EAC3B,mCAAmC,EACnC,QAAQ,CAAC,MAAM,EACf,MAAM,CAAC,eAAe,CACvB,CAAA;IACH,CAAC;IAED,kCAAkC;IAClC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;IAC1F,IAAI,YAAY,CAAC,IAAI,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;QAC9C,CAAC,CAAC,OAAO,CACP,0BAA0B,EAC1B,mCAAmC,EACnC,YAAY,CAAC,IAAI,EACjB,MAAM,CAAC,cAAc,CACtB,CAAA;IACH,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;IACvF,IAAI,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;QACnD,CAAC,CAAC,OAAO,CACP,sBAAsB,EACtB,uBAAuB,EACvB,WAAW,CAAC,IAAI,EAChB,MAAM,CAAC,oBAAoB,CAC5B,CAAA;IACH,CAAC;IAED,wDAAwD;IACxD,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,KAAK;SACF,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC;SAC7B,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;SAC1D,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAClC,CAAA;IACD,IAAI,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QAC3C,CAAC,CAAC,OAAO,CACP,2BAA2B,EAC3B,8CAA8C,EAC9C,QAAQ,CAAC,IAAI,EACb,MAAM,CAAC,eAAe,CACvB,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAA;IAC5D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,CAAC,CAAC,OAAO,CAAC,wBAAwB,EAAE,yCAAyC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAClG,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAe;IACtC,MAAM,CAAC,GAAG,IAAI,SAAS,EAAE,CAAA;IAEzB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,EAAE,aAAa,CAAC,CAAA;QACxC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAA;IACvD,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,uBAAuB,CAAC,CAAA;IAC1D,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,wBAAwB,CAAC,CAAA;IAC3D,CAAC;SAAM,CAAC;QACN,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAC7C,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAC7C,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACnF,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACrC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,CAAA;IAC1E,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxE,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,UAAU,EAAE,6BAA6B,CAAC,CAAA;IACrE,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9D,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,OAAO,EAAE,6BAA6B,CAAC,CAAA;QAChE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;IAEjE,0BAA0B;IAC1B,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,WAAW,CAAC,CAAC,EAAE,MAAiC,CAAC,CAAA;IAE5E,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAA;AACvD,CAAC"}
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
|
package/docs/design.md
CHANGED
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
|
|
70
70
|
## 3. 계약
|
|
71
71
|
|
|
72
|
-
###
|
|
72
|
+
### 원본 데이터 (`FigureSource`) — 저작 결과, 편집 가능
|
|
73
73
|
|
|
74
74
|
```
|
|
75
75
|
FigureSource
|
|
@@ -90,7 +90,7 @@ FigurePart
|
|
|
90
90
|
material { token?, preset?, flatShading? } ← 색은 토큰
|
|
91
91
|
slot? 'cap' | 'side' 상태 색이 연동될 재질 슬롯
|
|
92
92
|
sizing? 'scale' | 'fixed' | 'stretch' | 'repeat'
|
|
93
|
-
repeat? { axis,
|
|
93
|
+
repeat? { axis, pitch } sizing === 'repeat' 일 때
|
|
94
94
|
animation? { kind, axis?, pivot? } 애니메이션 포인트
|
|
95
95
|
label? { name, source, when } 텍스트 표현 자리
|
|
96
96
|
```
|
|
@@ -176,7 +176,7 @@ src/figure/index.ts 재출력
|
|
|
176
176
|
test/unit/figure/test-blueprint.js
|
|
177
177
|
```
|
|
178
178
|
|
|
179
|
-
**순수 함수다.** 씬을
|
|
179
|
+
**순수 함수다.** 씬을 만들지 않고 테스트한다. `model/arrange.ts` · `utils/polygon-shape.ts`
|
|
180
180
|
와 같은 방식이다.
|
|
181
181
|
|
|
182
182
|
## 6. 남은 것
|
package/docs/format-survey.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 기존 3D 모델 포맷 검토 — 왜 자체 형식인가
|
|
2
2
|
|
|
3
|
-
자체 형식을 만들기 전에 쓸 수 있는 표준이 있는지 먼저 본다. 결론은
|
|
3
|
+
자체 형식을 만들기 전에 쓸 수 있는 표준이 있는지 먼저 본다. 결론은 **원본 형식으로 쓸
|
|
4
4
|
만한 것이 없다**이고, 이 문서는 그 근거다.
|
|
5
5
|
|
|
6
6
|
---
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
| 강점 | 사실상 표준. 웹 로더가 성숙. 재질·애니메이션 규격이 있다 |
|
|
30
30
|
| **막히는 것** | **구운 메시다.** 정점 배열이라 치수·분할 수·프리미티브 종류가 남지 않는다 |
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
원본 형식으로 쓰면 네 가지가 무너진다.
|
|
33
33
|
|
|
34
34
|
- **StyleKit 추종 불가** — 스타일을 바꿔도 이미 구운 것은 안 바뀐다
|
|
35
35
|
- **톱뷰 계산 불가** — 형상을 모르니 2D 윤곽을 계산할 수 없다 (스냅샷으로 떨어진다)
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
것이 아니라 glTF 안에 우리 형식을 넣는 것**이고, 형상은 여전히 구워져 있어 ①의
|
|
41
41
|
이득(파라메트릭 편집·공유)이 없다.
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
**결론. 내보내기에는 쓴다. 원본 형식으로는 못 쓴다.**
|
|
44
44
|
|
|
45
45
|
### USD / USDZ
|
|
46
46
|
|