@hatiolab/figure-model 0.1.11 → 0.1.12

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.
@@ -1 +1 @@
1
- {"version":3,"file":"blueprint.d.ts","sourceRoot":"","sources":["../src/blueprint.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAK7D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACrF,OAAO,EAQL,KAAK,eAAe,EACpB,KAAK,UAAU,EAGf,KAAK,IAAI,EACT,KAAK,aAAa,EAClB,KAAK,IAAI,EACV,MAAM,YAAY,CAAA;AAEnB,+CAA+C;AAC/C,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;gBAE7B,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC;CAS7C;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CA0BpD;AAuBD,kDAAkD;AAElD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,aAAa,CAAA;CAAE,GAAG,IAAI,CAuBxE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,aAAa,CAAA;CAAE,GAAG,IAAI,CAKtE;AAkBD;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,eAAe,CAgFxD"}
1
+ {"version":3,"file":"blueprint.d.ts","sourceRoot":"","sources":["../src/blueprint.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAK7D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACrF,OAAO,EAQL,KAAK,eAAe,EACpB,KAAK,UAAU,EAGf,KAAK,IAAI,EACT,KAAK,aAAa,EAClB,KAAK,IAAI,EACV,MAAM,YAAY,CAAA;AAEnB,+CAA+C;AAC/C,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;gBAE7B,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC;CAS7C;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CA0BpD;AAuBD,kDAAkD;AAElD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,aAAa,CAAA;CAAE,GAAG,IAAI,CAuBxE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,aAAa,CAAA;CAAE,GAAG,IAAI,CAKtE;AAmBD;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,eAAe,CAgFxD"}
package/dist/blueprint.js CHANGED
@@ -173,6 +173,8 @@ function memberOf(part) {
173
173
  };
174
174
  if (usesSegments(part.primitive) && part.segments !== undefined)
175
175
  member.segments = part.segments;
176
+ if (part.keepRound !== undefined)
177
+ member.keepRound = part.keepRound;
176
178
  if (part.anchor !== undefined)
177
179
  member.anchor = part.anchor;
178
180
  if (part.repeat !== undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"blueprint.js","sourceRoot":"","sources":["../src/blueprint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blueprint.js","sourceRoot":"","sources":["../src/blueprint.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,18 @@ import type { AnimationClip, FigurePart, Vec3 } from './types.ts';
6
6
  * the two have to be brought together before grouping can answer anything.
7
7
  */
8
8
  export declare function animatedNames(clips: readonly AnimationClip[] | undefined): ReadonlySet<string>;
9
- /** A part draws on its own when it cannot be merged with its neighbours. */
9
+ /**
10
+ * A part draws on its own when it cannot be merged with its neighbours.
11
+ *
12
+ * A curved part stands alone whatever its sizing. A merged geometry takes one
13
+ * transform, and an instance scaled differently on each axis turns a cylinder
14
+ * merged into it into an elliptical one -- declared round, drawn oval. Keeping
15
+ * it round means keeping its own transform.
16
+ *
17
+ * `needsOwnMesh` in things-scene must answer the same. When the two disagree,
18
+ * the number the report shows and the number the screen draws come apart, which
19
+ * is the fault this whole file was written to close.
20
+ */
10
21
  export declare function standsAlone(part: FigurePart, animated?: ReadonlySet<string>): boolean;
11
22
  /**
12
23
  * The merge groups a set of parts produces.
@@ -15,6 +26,13 @@ export declare function standsAlone(part: FigurePart, animated?: ReadonlySet<str
15
26
  * alone get an entry of their own.
16
27
  */
17
28
  export declare function groupsOf(parts: readonly FigurePart[], animated?: ReadonlySet<string>): FigurePart[][];
29
+ /**
30
+ * Does this part hold its section circular under a lopsided instance?
31
+ *
32
+ * Only curved primitives can, and they do unless the author turns it off. A
33
+ * bolt head nobody looks at is worth merging; a wheel is not.
34
+ */
35
+ export declare function keepsRound(part: FigurePart): boolean;
18
36
  /**
19
37
  * How many meshes one repeat part draws **as authored**.
20
38
  *
@@ -1 +1 @@
1
- {"version":3,"file":"grouping.d.ts","sourceRoot":"","sources":["../src/grouping.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjE;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAQ9F;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,GAAE,WAAW,CAAC,MAAM,CAAS,GAAG,OAAO,CAE5F;AAID;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,EAAE,QAAQ,GAAE,WAAW,CAAC,MAAM,CAAS,GAAG,UAAU,EAAE,EAAE,CAwB5G;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,CASlE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,IAAI,EAAE,IAAI,EACV,QAAQ,GAAE,WAAW,CAAC,MAAM,CAAS,GACpC,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,CAI9E"}
1
+ {"version":3,"file":"grouping.d.ts","sourceRoot":"","sources":["../src/grouping.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjE;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAQ9F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,GAAE,WAAW,CAAC,MAAM,CAAS,GAAG,OAAO,CAI5F;AAID;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,EAAE,QAAQ,GAAE,WAAW,CAAC,MAAM,CAAS,GAAG,UAAU,EAAE,EAAE,CAwB5G;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAGpD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,CASlE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,IAAI,EAAE,IAAI,EACV,QAAQ,GAAE,WAAW,CAAC,MAAM,CAAS,GACpC,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,CAI9E"}
package/dist/grouping.js CHANGED
@@ -21,13 +21,15 @@
21
21
  * merged geometry with parts that stay put
22
22
  * sizing a part that does not scale with the instance takes its own
23
23
  * transform, and a merged geometry only takes one
24
+ * curvature a cylinder or sphere takes its own transform too, or the one
25
+ * transform a merged geometry gets turns it oval
24
26
  * repeat one authored part, many meshes -- each copy is a draw call
25
27
  *
26
28
  * The first two make groups. The third multiplies inside a group, which is why
27
29
  * `drawCallsOf` is not simply `groupsOf().length`.
28
30
  */
29
31
  import { groupKeyOf } from "./keys.js";
30
- import { DEFAULT_SIZING, REPEAT_LIMIT } from "./types.js";
32
+ import { CURVED_PRIMITIVES, DEFAULT_SIZING, REPEAT_LIMIT } from "./types.js";
31
33
  /**
32
34
  * The parts any clip moves.
33
35
  *
@@ -44,9 +46,24 @@ export function animatedNames(clips) {
44
46
  }
45
47
  return names;
46
48
  }
47
- /** A part draws on its own when it cannot be merged with its neighbours. */
49
+ /**
50
+ * A part draws on its own when it cannot be merged with its neighbours.
51
+ *
52
+ * A curved part stands alone whatever its sizing. A merged geometry takes one
53
+ * transform, and an instance scaled differently on each axis turns a cylinder
54
+ * merged into it into an elliptical one -- declared round, drawn oval. Keeping
55
+ * it round means keeping its own transform.
56
+ *
57
+ * `needsOwnMesh` in things-scene must answer the same. When the two disagree,
58
+ * the number the report shows and the number the screen draws come apart, which
59
+ * is the fault this whole file was written to close.
60
+ */
48
61
  export function standsAlone(part, animated = EMPTY) {
49
- return animated.has(part.name) || (part.sizing ?? DEFAULT_SIZING) !== 'scale';
62
+ if (animated.has(part.name))
63
+ return true;
64
+ if ((part.sizing ?? DEFAULT_SIZING) !== 'scale')
65
+ return true;
66
+ return keepsRound(part);
50
67
  }
51
68
  const EMPTY = new Set();
52
69
  /**
@@ -75,6 +92,17 @@ export function groupsOf(parts, animated = EMPTY) {
75
92
  }
76
93
  return groups;
77
94
  }
95
+ /**
96
+ * Does this part hold its section circular under a lopsided instance?
97
+ *
98
+ * Only curved primitives can, and they do unless the author turns it off. A
99
+ * bolt head nobody looks at is worth merging; a wheel is not.
100
+ */
101
+ export function keepsRound(part) {
102
+ if (!CURVED_PRIMITIVES.includes(part.primitive))
103
+ return false;
104
+ return part.keepRound !== false;
105
+ }
78
106
  /**
79
107
  * How many meshes one repeat part draws **as authored**.
80
108
  *
@@ -1 +1 @@
1
- {"version":3,"file":"grouping.js","sourceRoot":"","sources":["../src/grouping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grouping.js","sourceRoot":"","sources":["../src/grouping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAG5E;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,KAA2C;IACvE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAC/B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC1C,IAAI,OAAO,OAAO,EAAE,MAAM,KAAK,QAAQ;gBAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACpE,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,IAAgB,EAAE,WAAgC,KAAK;IACjF,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IACxC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,cAAc,CAAC,KAAK,OAAO;QAAE,OAAO,IAAI,CAAA;IAC5D,OAAO,UAAU,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,MAAM,KAAK,GAAwB,IAAI,GAAG,EAAE,CAAA;AAE5C;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,KAA4B,EAAE,WAAgC,KAAK;IAC1F,MAAM,MAAM,GAAmB,EAAE,CAAA;IACjC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAA;IAE7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YACnB,SAAQ;QACV,CAAC;QAED,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAE7B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACjB,SAAQ;QACV,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,CAAA;QACtB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACvB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACtB,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,IAAgB;IACzC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAA;IAC7D,OAAO,IAAI,CAAC,SAAS,KAAK,KAAK,CAAA;AACjC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,IAAgB,EAAE,IAAU;IACxD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,CAAA;IAEtD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;IACnC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;QAAE,OAAO,CAAC,CAAA;IAEpD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAE/E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;AACtE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,KAA4B,EAC5B,IAAU,EACV,WAAgC,KAAK;IAErC,OAAO,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;AAClG,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,KAA4B,EAAE,IAAU;IACpE,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAEtD,OAAO,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7C,CAAC"}
package/dist/types.d.ts CHANGED
@@ -7,6 +7,13 @@ export declare const EXTRUDE_PRIMITIVES: readonly PrimitiveKind[];
7
7
  export declare const MESH_PRIMITIVES: readonly PrimitiveKind[];
8
8
  /** 분할 수를 갖는 프리미티브 — 곡면이 있는 것만. */
9
9
  export declare const SEGMENTED_PRIMITIVES: readonly PrimitiveKind[];
10
+ /**
11
+ * 단면이 **원**인 프리미티브.
12
+ *
13
+ * 축마다 다른 배율을 받으면 타원이 된다. 그래서 이것들은 합친 묶음에 들지 못한다 —
14
+ * 합친 형상은 변환을 하나만 받는다. 곡면 부품 하나가 draw call 하나다.
15
+ */
16
+ export declare const CURVED_PRIMITIVES: readonly PrimitiveKind[];
10
17
  /**
11
18
  * 재질 슬롯. extrude 계열의 재질 인덱스가 둘로 정해져 있다.
12
19
  * `threed/real-object-extrude.ts:105-111` — 0 = cap(fillStyle), 1 = side(strokeStyle)
@@ -84,7 +91,7 @@ export type SizingRule = (typeof SIZING_RULES)[number];
84
91
  *
85
92
  * `sizing` 이 `'scale'` 인 부품에는 뜻이 없다 — 그 부품은 상자와 함께 커진다.
86
93
  */
87
- export declare const ANCHOR_RULES: readonly ["scale", "min", "center", "max", "span"];
94
+ export declare const ANCHOR_RULES: readonly ["scale", "min", "center", "max", "span", "aspect-x", "aspect-y", "aspect-z"];
88
95
  export type AnchorRule = (typeof ANCHOR_RULES)[number];
89
96
  /**
90
97
  * 축별 앵커. 적지 않은 축은 `sizing` 이 정한 것을 따른다.
@@ -444,6 +451,21 @@ export interface FigurePart {
444
451
  * 「자재가 앉는 자리」 둘을 뜻하게 된다. 여기는 재질 쪽이므로 그렇게 부른다.
445
452
  */
446
453
  materialSlot?: MaterialSlot;
454
+ /**
455
+ * 단면을 **원으로 지킬 것인가.** 곡면 프리미티브만 뜻이 있고, 기본은 지키는 것이다.
456
+ *
457
+ * 인스턴스가 축마다 다른 배율이면 원기둥이 타원 기둥이 된다. AGV 를 길게 늘이면
458
+ * 바퀴가 찌그러지고, 크레들을 높이면 롤이 납작해진다. 원기둥이라고 적어 놓고 원기둥이
459
+ * 아닌 것을 그리는 것이므로 기본을 「지킨다」로 둔다.
460
+ *
461
+ * **값을 치른다.** 지키려면 제 변환이 있어야 하고, 합친 묶음은 변환을 하나만 받는다 —
462
+ * 그래서 지키는 곡면 부품은 **하나가 draw call 하나**다. 표본 열넷에서 139 가 168 이
463
+ * 되었다.
464
+ *
465
+ * 끄면 합쳐진다. 끌 만한 것들이 있다 — 볼트 머리 · 작은 스터드처럼 찌그러져도 아무도
466
+ * 모를 것들이다. 화면의 주역이 되는 롤 · 바퀴 · 탱크는 켜 둔다.
467
+ */
468
+ keepRound?: boolean;
447
469
  sizing?: SizingRule;
448
470
  /**
449
471
  * 어느 면을 붙잡나. 적지 않은 축은 **가까운 면**이다(`ANCHOR_ENDS` 참고).
@@ -494,6 +516,8 @@ export interface BlueprintMember {
494
516
  * 2D 톱뷰를 3D 와 **같은 분할 수**로 근사하려면 이 값이 필요하므로 따로 제공한다.
495
517
  */
496
518
  segments?: number;
519
+ /** 단면을 원으로 지킬 것인가. 곡면만 뜻이 있고 기본은 지키는 것이다. */
520
+ keepRound?: boolean;
497
521
  sizing: SizingRule;
498
522
  /** 어느 면을 붙잡나. 원본에 적힌 것만 실린다 — 적지 않은 축은 그리는 쪽이 센다. */
499
523
  anchor?: PartAnchor;
@@ -539,13 +563,13 @@ export interface Violation {
539
563
  * 처리를 정해야 하는데, 코드가 늘어난 것이 알려지지 않으면 그 대응이 빠진다. 뜻은
540
564
  * `docs/validation.md` 에 있고, 문서와 이 목록이 어긋나면 테스트가 실패한다.
541
565
  */
542
- export declare const ERROR_CODES: readonly ["not-object", "not-finite", "not-positive", "out-of-range", "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", "hollow-too-thick", "hollow-not-convex", "missing-material", "material-unresolvable", "missing-repeat", "missing-channels", "unknown-channel-target", "too-few-keys", "keys-out-of-order", "missing-surface-ref", "missing-label-name", "missing-label-source"];
566
+ export declare const ERROR_CODES: readonly ["not-object", "not-finite", "not-positive", "out-of-range", "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", "hollow-too-thick", "hollow-not-convex", "bad-aspect-axis", "missing-material", "material-unresolvable", "missing-repeat", "missing-channels", "unknown-channel-target", "too-few-keys", "keys-out-of-order", "missing-surface-ref", "missing-label-name", "missing-label-source"];
543
567
  export type ErrorCode = (typeof ERROR_CODES)[number];
544
568
  /**
545
569
  * 위반 코드 전부. 위반은 컴파일을 막지 않는다 — 저작 화면이 알려 주는 데 쓴다.
546
570
  * 뜻과 한도는 `docs/validation.md` 에 있다.
547
571
  */
548
- export declare const VIOLATION_CODES: readonly ["segments-off-preset", "segments-ignored", "repeat-ignored", "anchor-ignored", "hollow-ignored", "pivot-ignored", "detail-level-missing", "too-many-parts", "too-many-animated-parts", "too-many-material-groups", "too-many-transparent", "too-many-surface-textures", "too-many-always-labels"];
572
+ export declare const VIOLATION_CODES: readonly ["segments-off-preset", "segments-ignored", "repeat-ignored", "anchor-ignored", "keep-round-ignored", "hollow-ignored", "pivot-ignored", "detail-level-missing", "too-many-parts", "too-many-animated-parts", "too-many-material-groups", "too-many-transparent", "too-many-surface-textures", "too-many-always-labels"];
549
573
  export type ViolationCode = (typeof VIOLATION_CODES)[number];
550
574
  /** 형식·정합성 오류. 이것이 있으면 컴파일할 수 없다. */
551
575
  export interface FigureError {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -26,6 +26,13 @@ export const EXTRUDE_PRIMITIVES = ['rect', 'polygon'];
26
26
  export const MESH_PRIMITIVES = ['cube', 'wall', 'cylinder', 'sphere'];
27
27
  /** 분할 수를 갖는 프리미티브 — 곡면이 있는 것만. */
28
28
  export const SEGMENTED_PRIMITIVES = ['cylinder', 'sphere'];
29
+ /**
30
+ * 단면이 **원**인 프리미티브.
31
+ *
32
+ * 축마다 다른 배율을 받으면 타원이 된다. 그래서 이것들은 합친 묶음에 들지 못한다 —
33
+ * 합친 형상은 변환을 하나만 받는다. 곡면 부품 하나가 draw call 하나다.
34
+ */
35
+ export const CURVED_PRIMITIVES = ['cylinder', 'sphere'];
29
36
  /**
30
37
  * 재질 슬롯. extrude 계열의 재질 인덱스가 둘로 정해져 있다.
31
38
  * `threed/real-object-extrude.ts:105-111` — 0 = cap(fillStyle), 1 = side(strokeStyle)
@@ -100,7 +107,27 @@ export const SIZING_RULES = ['scale', 'fixed', 'stretch', 'repeat'];
100
107
  *
101
108
  * `sizing` 이 `'scale'` 인 부품에는 뜻이 없다 — 그 부품은 상자와 함께 커진다.
102
109
  */
103
- export const ANCHOR_RULES = ['scale', 'min', 'center', 'max', 'span'];
110
+ export const ANCHOR_RULES = [
111
+ 'scale',
112
+ 'min',
113
+ 'center',
114
+ 'max',
115
+ 'span',
116
+ /*
117
+ 다른 축의 배율을 따라간다 — **비율을 지킨다.**
118
+
119
+ 드라이룸의 출입구가 그렇다. 방을 키우면 문도 커져야 하지만 문은 문이라 **폭이
120
+ 높이에 비례**해야 한다. `scale` 로 두면 폭이 제 축(x)을 따라가므로, 방을 폭으로만
121
+ 늘리면 문이 넓어지기만 하고 높아지지 않는다.
122
+
123
+ anchor: { x: 'aspect-y', y: 'scale', z: 'max' }
124
+
125
+ 자기 자신이나 또 다른 `aspect-` 축을 가리킬 수는 없다.
126
+ */
127
+ 'aspect-x',
128
+ 'aspect-y',
129
+ 'aspect-z'
130
+ ];
104
131
  /**
105
132
  * 디테일 등급 — 이 형상을 얼마나 상세하게 만들 것인지 저작자가 밝히는 값.
106
133
  *
@@ -192,6 +219,7 @@ export const ERROR_CODES = [
192
219
  'bad-shape-point',
193
220
  'hollow-too-thick',
194
221
  'hollow-not-convex',
222
+ 'bad-aspect-axis',
195
223
  // 재질
196
224
  'missing-material',
197
225
  'material-unresolvable',
@@ -217,6 +245,7 @@ export const VIOLATION_CODES = [
217
245
  'segments-ignored',
218
246
  'repeat-ignored',
219
247
  'anchor-ignored',
248
+ 'keep-round-ignored',
220
249
  'hollow-ignored',
221
250
  'pivot-ignored',
222
251
  'detail-level-missing',
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAqBA,OAAO,EAoBL,KAAK,WAAW,EAGhB,KAAK,SAAS,EAEf,MAAM,YAAY,CAAA;AAOnB,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,UAAU,EAAE,SAAS,EAAE,CAAA;CACxB;AAmgBD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,cAAc,CA2CxD"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAqBA,OAAO,EAqBL,KAAK,WAAW,EAGhB,KAAK,SAAS,EAEf,MAAM,YAAY,CAAA;AAOnB,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,UAAU,EAAE,SAAS,EAAE,CAAA;CACxB;AAqiBD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,cAAc,CA2CxD"}
package/dist/validate.js CHANGED
@@ -18,7 +18,7 @@
18
18
  * 결측을 기본값으로 갈음하지 않는다. 값이 없는 것과 0 인 것은 다르고, 갈음하면
19
19
  * 저작자가 빠뜨린 것을 알 수 없다.
20
20
  */
21
- import { ANCHOR_RULES, AXES, EXTRUDE_PRIMITIVES, CHANNEL_PATHS, DEFAULT_SIZING, CLIP_DRIVES, DETAIL_LEVELS, LABEL_WHENS, LIMITS, MATERIAL_PRESETS, MATERIAL_SLOTS, INTERPOLATIONS, PART_LIMIT, PRIMITIVE_KINDS, SEGMENTED_PRIMITIVES, SEGMENT_PRESETS, SIZING_RULES, SURFACE_KINDS } from "./types.js";
21
+ import { ANCHOR_RULES, AXES, CURVED_PRIMITIVES, EXTRUDE_PRIMITIVES, CHANNEL_PATHS, DEFAULT_SIZING, CLIP_DRIVES, DETAIL_LEVELS, LABEL_WHENS, LIMITS, MATERIAL_PRESETS, MATERIAL_SLOTS, INTERPOLATIONS, PART_LIMIT, PRIMITIVE_KINDS, SEGMENTED_PRIMITIVES, SEGMENT_PRESETS, SIZING_RULES, SURFACE_KINDS } from "./types.js";
22
22
  import { animatedNames, drawCallsOf } from "./grouping.js";
23
23
  import { groupKeyOf } from "./keys.js";
24
24
  function isObject(v) {
@@ -300,6 +300,20 @@ function validatePart(c, raw, index, seen) {
300
300
  else if (raw.repeat !== undefined) {
301
301
  c.violate('repeat-ignored', `${raw.name ?? path}: sizing 이 'repeat' 가 아니면 repeat 는 쓰이지 않는다`);
302
302
  }
303
+ /*
304
+ 단면을 원으로 지킬 것인가. 곡면만 뜻이 있다.
305
+
306
+ 적어 두고 아무 일도 안 일어나면 저작자는 「꺼 뒀다」고 믿는다. 상자에 적은 것을
307
+ 짚어 준다.
308
+ */
309
+ if (raw.keepRound !== undefined) {
310
+ if (typeof raw.keepRound !== 'boolean') {
311
+ c.error('not-boolean', `${path}.keepRound`, 'keepRound 는 참·거짓이어야 한다');
312
+ }
313
+ else if (!CURVED_PRIMITIVES.includes(raw.primitive)) {
314
+ c.violate('keep-round-ignored', `${raw.name ?? path}: ${raw.primitive} 는 단면이 원이 아니다`);
315
+ }
316
+ }
303
317
  // anchor — 어느 면을 붙잡나
304
318
  if (raw.anchor !== undefined) {
305
319
  if (!isObject(raw.anchor)) {
@@ -311,6 +325,22 @@ function validatePart(c, raw, index, seen) {
311
325
  c.oneOf(raw.anchor[axis], ANCHOR_RULES, `${path}.anchor.${axis}`, `anchor.${axis}`);
312
326
  }
313
327
  }
328
+ /*
329
+ `aspect-` 는 다른 축을 가리킨다. 자기 자신이면 뜻이 없고, 또 다른 `aspect-` 를
330
+ 가리키면 서로 미룬다.
331
+ */
332
+ for (const axis of AXES) {
333
+ const rule = raw.anchor[axis];
334
+ if (typeof rule !== 'string' || !rule.startsWith('aspect-'))
335
+ continue;
336
+ const named = rule.slice('aspect-'.length);
337
+ if (named === axis) {
338
+ c.error('bad-aspect-axis', `${path}.anchor.${axis}`, `${axis} 가 자기 자신을 가리킨다`);
339
+ }
340
+ else if (String(raw.anchor[named] ?? '').startsWith('aspect-')) {
341
+ c.error('bad-aspect-axis', `${path}.anchor.${axis}`, `${axis} 가 가리킨 ${named} 도 다른 축을 따라간다 — 따라갈 배율이 정해지지 않는다`);
342
+ }
343
+ }
314
344
  /*
315
345
  `scale` 부품은 상자와 함께 커진다 — 붙잡을 면이 따로 없다. 적어 두면 아무 일도
316
346
  일어나지 않으므로, 저작자가 「붙잡아 뒀다」고 믿는 채로 두지 않는다.
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
package/docs/format.md CHANGED
@@ -59,6 +59,7 @@ transform.rotation { x, y, z } 축별 회전(도), 선택
59
59
  | `shape` | `PartShape` | | 단면. `rect` · `polygon` 만. `hollow` 로 **속을 판다** |
60
60
  | `materialSlot` | `'cap' \| 'side'` | | 상태 색이 연동될 재질 슬롯. 없으면 상태를 표현하지 않는다. **`slot` 이 아니다** — 그 낱말은 보유물이 앉는 자리 쪽 임자가 있다 |
61
61
  | `sizing` | `SizingRule` | | 크기 반응 규칙. 기본 `'scale'` |
62
+ | `keepRound` | `boolean` | | 단면을 원으로 지킬까. 곡면만. 기본 `true` — **켜면 draw call 하나를 쓴다** |
62
63
  | `anchor` | `PartAnchor` | | 축마다 **어느 면을 붙잡나**. `sizing` 이 정한 것을 덮어쓴다 |
63
64
  | `repeat` | `{ axis, pitch }` | | `sizing` 이 `'repeat'` 일 때 필수 |
64
65
  | `label` | `LabelSpec` | | 텍스트. 아래 표 |
@@ -251,6 +252,45 @@ rect round=24 140 모서리마다 8 점으로 뽑으므로 테가
251
252
 
252
253
  **비싼 것은 미는 것이 아니라 라운드다.**
253
254
 
255
+ ### `keepRound` — 원통을 원통으로 둘까
256
+
257
+ 인스턴스가 축마다 다른 배율을 받으면 원기둥은 타원 기둥이 된다. AGV 를 길게 늘이면
258
+ 바퀴가 찌그러지고, 크레들을 높이면 롤이 납작해진다. 기본은 **지킨다**이다 — 원기둥이라고
259
+ 적어 놓고 원기둥이 아닌 것을 그리지 않는다.
260
+
261
+ 지키는 방식은 **단면의 두 축이 같은 배율을 받는 것**이고, 그 배율은 두 배율의
262
+ **기하평균**이다. 크기를 얼리는 것이 아니다 — 인스턴스가 커지면 원통도 커지되 원을
263
+ 지킨다. 작은 쪽에 맞추면 한 축만 늘인 인스턴스에서 지름이 묶여 **형태가 아니라 크기**를
264
+ 지키게 된다.
265
+
266
+ #### 비용
267
+
268
+ 합친 형상은 변환을 하나만 받는다. 원을 지키려면 제 변환이 있어야 하므로 **지키는 곡면
269
+ 부품 하나가 draw call 하나**다.
270
+
271
+ ```
272
+ 표본 열넷의 draw call 139 → 168 (+21%)
273
+ AGV 3 → 12 바퀴 · 기둥 · 램프가 다 원통이다
274
+ 작업자 4 → 13 팔다리가 원통이다
275
+ 전극 롤 크래들 8 → 17
276
+ ```
277
+
278
+ **형상은 계속 나눠 쓴다.** 따로 서는 것과 정점 버퍼를 나눠 쓰는 것은 다른 이야기다 —
279
+ 같은 규격 롤러 여덟은 묶음 여덟이어도 geometry 는 하나다. 그래서 이 비용은 인스턴싱이
280
+ 가장 잘 먹는 모양이기도 하다.
281
+
282
+ #### 스타일 밸런스
283
+
284
+ 끌 만한 것과 아닌 것이 갈린다.
285
+
286
+ ```
287
+ 켜 둔다 화면의 주역 롤 · 바퀴 · 탱크 · 기둥 · 파이프
288
+ 꺼도 된다 찌그러져도 모를 것 볼트 머리 · 작은 스터드 · 발 받침
289
+ ```
290
+
291
+ 로우폴리에서 지름 100 아래의 원통은 8 분할이면 이미 팔각형이라, 조금 찌그러져도 읽는
292
+ 사람이 눈치채지 못한다. 그런 것을 끄면 그 묶음이 다시 합쳐진다.
293
+
254
294
  ### `PartAnchor` — 어느 면을 붙잡나
255
295
 
256
296
  `sizing` 은 부품의 **크기**가 인스턴스를 어떻게 따라가는지만 말했다. **자리**는 언제나
package/docs/sizing.md ADDED
@@ -0,0 +1,183 @@
1
+ # 크기 반응 — 인스턴스가 커질 때 부품이 어떻게 되나
2
+
3
+ 저작한 형상 하나가 보드에 여러 크기로 놓인다. 컨베이어를 2400 으로도, 7200 으로도
4
+ 놓는다. 그때 부품마다 다르게 반응해야 한다 — 프레임은 길어지고, 모터는 그대로이고,
5
+ 롤러는 개수가 늘고, 다리는 늘어나 프레임을 떠받친다.
6
+
7
+ 이 문서는 그 반응을 **빠짐없이** 적는다. 낱개 규칙을 모아 놓은 것이 아니라, 「인스턴스가
8
+ 축마다 다른 배율을 받을 때 부품 하나에 일어날 수 있는 일」의 전부다.
9
+
10
+ ## 물음은 축마다 둘이다
11
+
12
+ 인스턴스 배율은 축마다 다르다 — `sx` · `sy` · `sz`. 부품 하나에 대해 축마다 물을 것이
13
+ 둘 있다.
14
+
15
+ ```
16
+ 크기 이 축의 길이가 어떻게 되나
17
+ 자리 이 축의 중심이 어디로 가나
18
+ ```
19
+
20
+ 세 축 × 둘 = 여섯 가지 답이 부품 하나의 반응을 완전히 정한다. **`anchor` 의 한 값이 그
21
+ 축의 둘을 함께 정한다** — 갈라 놓으면 「크기는 지키고 자리는 비례」처럼 성립하지 않는
22
+ 조합이 생긴다. 실제로 그것 때문에 크레들의 V 패드 둘이 ±80 에서 ±240 으로 벌어졌다.
23
+
24
+ ## 값 여섯 개가 전부다
25
+
26
+ | `anchor` | 크기 | 자리 | 붙잡는 자리 |
27
+ | ---------- | ------------- | --------------------------- | ----------- |
28
+ | `scale` | `× s` | `× s` | 없음 |
29
+ | `min` | 그대로 | 아래 면에서 잰 거리를 지킨다 | 한 곳 |
30
+ | `center` | 그대로 | 가운데에서 잰 거리를 지킨다 | 한 곳 |
31
+ | `max` | 그대로 | 위 면에서 잰 거리를 지킨다 | 한 곳 |
32
+ | `span` | 남는 만큼 채움 | 양쪽에서 잰 거리를 지킨다 | 두 곳 |
33
+ | `aspect-x` `aspect-y` `aspect-z` | 가리킨 축의 배율 | 가리킨 축의 배율 | 다른 축 |
34
+
35
+ 「아래·위」는 축의 −·+ 쪽이다. x 는 왼쪽·오른쪽, y 는 밑·위, z 는 뒤·앞이다.
36
+
37
+ ### 이 여섯이 왜 전부인가
38
+
39
+ 크기가 될 수 있는 것은 넷뿐이다 — 배율을 그대로 받거나(`scale`), 지키거나(`min` ·
40
+ `center` · `max`), 남는 만큼 채우거나(`span`), 다른 축을 따라가거나(`aspect-`). 자리는
41
+ 기준면이 어디냐로 갈리고 기준면은 셋뿐이다 — 아래 · 가운데 · 위.
42
+
43
+ 빠진 조합 둘을 굳이 확인해 두면 이렇다.
44
+
45
+ - **크기는 배율, 자리는 붙잡기.** `scale` 이 이미 그것이다. 바닥에 붙여 놓은 부품은
46
+ `scale` 로 두면 바닥에 남는다 — 상자 바닥이 `−h·s` 로 가고 부품 밑면도 그리로 간다.
47
+ - **크기는 그대로, 자리는 비례.** 한동안 `center` 가 이것이었고 **틀렸다.** 가운데
48
+ 가까이 저작한 것이 상자가 커질 때마다 밖으로 밀려 이웃과 갈라진다.
49
+
50
+ ## `sizing` 은 축별 기본값을 채우는 짧은 표기다
51
+
52
+ 부품마다 세 축을 다 적게 하면 저작이 못 견딘다. `sizing` 한 낱말이 세 축을 채우고,
53
+ `anchor` 가 축마다 그것을 덮는다.
54
+
55
+ | `sizing` | x · y · z 에 채워지는 것 |
56
+ | --------- | --------------------------------------------------------- |
57
+ | `scale` | 세 축 다 `scale` |
58
+ | `fixed` | 세 축 다 **가까운 면** |
59
+ | `stretch` | 가장 긴 축은 `span`, 나머지는 가까운 면 |
60
+ | `repeat` | 늘어나는 축은 `center`, 나머지는 가까운 면 |
61
+
62
+ **가까운 면**은 부품의 면에서 상자의 면까지 재서 짧은 쪽이다. 중심에서 재지 않는다 —
63
+ 중심으로 재면 굵은 부품과 얇은 부품이 같은 자리에서 다른 답을 낸다. 양쪽이 같으면
64
+ `center` 다.
65
+
66
+ 표본 열넷 중 대부분이 이 기본값만으로 제대로 선다. 그것이 이 기본값이 사람이 이미
67
+ 뜻하는 것이라는 증거다.
68
+
69
+ ## 축을 넘는 규칙 둘
70
+
71
+ 축마다 따로 정하는 것으로 안 되는 것이 둘 있다. 둘 다 **여러 축이 한 배율을 나눠
72
+ 받아야** 하는 경우다.
73
+
74
+ ### `keepRound` — 곡면의 단면은 원이다
75
+
76
+ `cylinder` · `sphere` 는 단면이 원이다. 축마다 다른 배율을 받으면 타원이 된다 —
77
+ 원기둥이라고 적어 놓고 원기둥이 아닌 것을 그리는 것이다.
78
+
79
+ 그래서 단면의 두 축(구는 세 축)이 **기하평균**을 함께 받는다. 작은 쪽에 맞추면 한 축만
80
+ 늘인 인스턴스에서 지름이 묶여, 형태가 아니라 **크기**를 지키게 된다.
81
+
82
+ 기본이 켜짐이고 값을 치른다 — 합친 형상은 변환을 하나만 받으므로 원을 지키는 곡면 부품
83
+ 하나가 draw call 하나다. 표본 열넷에서 139 가 168 이 되었다. `keepRound: false` 로 끄면
84
+ 다시 합쳐진다.
85
+
86
+ ```
87
+ 켜 둔다 화면의 주역 롤 · 바퀴 · 탱크 · 기둥 · 파이프
88
+ 끈다 기계가 안 깎은 것 사람의 팔다리 · 머리
89
+ 끈다 찌그러져도 모를 것 볼트 머리 · 작은 스터드
90
+ ```
91
+
92
+ 사람에게는 기계가 깎은 원통이 없다. 작업자를 전부 끄면 16 부품이 13 call 에서 4 call 이
93
+ 되는데, 그 4 는 쓰는 재질 수이므로 더 내려갈 자리가 없다는 뜻이다.
94
+
95
+ ### `aspect-` — 비율을 지킨다
96
+
97
+ 두 부품이 같은 것을 반대 방향에서 요구했다.
98
+
99
+ ```
100
+ 드라이룸 출입구 높이가 비례하고 **폭이 높이를 따라간다**
101
+ 문은 방이 넓어졌다고 넓어지지 않는다. 높아져서 넓어진다
102
+
103
+ 전극 롤 크래들 지름이 **z 를 따라간다**
104
+ z 가 기계의 깊이 900 이고 롤이 그 중 700 이다. 그 깊이가 지름의 자리다
105
+ 길이는 따로다 — x 가 웹 폭이다
106
+ ```
107
+
108
+ 축마다 제 배율을 받는 것으로는 둘 다 못 말한다. `aspect-y` 는 「이 축은 y 가 **끝낸**
109
+ 배율을 받는다」이고, 끝낸 배율은 그 축의 규칙이 정한다 — `scale` 이면 인스턴스 배율,
110
+ 붙잡은 축이면 1, `span` 이면 채운 만큼이다.
111
+
112
+ 자기 자신이나 또 다른 `aspect-` 를 가리킬 수는 없다(`bad-aspect-axis`). 따라갈 배율이
113
+ 정해지지 않는다.
114
+
115
+ **상자로 자르지 않는다.** 자르면 크레들 롤이 막힌다 — 지름은 기준 상자의 높이를 넘어서
116
+ 자란다. 기준 상자는 배치 비율의 분모이고 담장이 아니다(컨베이어의 발판이 이미 상자보다
117
+ 넓다). 값은 이렇다: 이미 상자를 꽉 채운 부품은 한 축만 커진 상자에서 비율을 지킬 수 없다.
118
+ 그런 부품은 여유를 두고 저작하거나 `span` 으로 채운다.
119
+
120
+ ## `repeat` — 줄이 늘어나나 커지나
121
+
122
+ 같은 「반복」이 두 가지다. 그 갈림을 늘어나는 축의 `anchor` 가 말한다.
123
+
124
+ ```
125
+ center 줄이 상자를 채운다 컨베이어 롤러 — 길어지면 개수가 늘고 한 칸은 그대로다
126
+ scale 줄이 상자와 함께 큰다 셀트레이 셀 — 커지면 셀이 커지고 개수는 그대로다
127
+ ```
128
+
129
+ 셀 개수는 그 트레이가 몇 셀짜리냐이지 화면에 얼마나 크게 그렸느냐가 아니다.
130
+
131
+ ## 저작할 때 묻는 순서
132
+
133
+ ```
134
+ 1 이 부품은 상자와 함께 커지나
135
+ 그렇다 → sizing: 'scale' · 끝
136
+ 2 어느 축이 상자를 채우나
137
+ 길이 방향 하나 → sizing: 'stretch'
138
+ 둘 이상 → sizing: 'fixed' + anchor 에 'span'
139
+ 3 채우지 않는 축은 무엇을 붙잡나
140
+ 적지 않으면 가까운 면. 가까운 면이 틀리면 min · center · max 로 적는다
141
+ 4 다른 부품과 한 뭉치인가
142
+ **같은 면을 붙잡게 한다.** 서로 다른 면을 잡으면 배율마다 사이가 벌어진다
143
+ 5 비율을 지켜야 하나
144
+ aspect- 로 기준 축을 가리킨다
145
+ 6 곡면인데 찌그러져도 되나
146
+ 되면 keepRound: false — draw call 하나를 아낀다
147
+ ```
148
+
149
+ 4 번이 가장 자주 틀린다. 롤프레스의 두 롤이 `min` 과 `max` 로 갈려 3 배에서 5200
150
+ 벌어졌고, 시그널 타워의 램프가 기둥과 다른 면을 잡아 공중으로 갔다.
151
+
152
+ ## 못 하는 말 하나 — 부품에 부모가 없다
153
+
154
+ 「선반에 달린 램프」 · 「하우징에 붙은 HMI」를 형식이 직접 말하지 못한다. 붙잡는 것은
155
+ 언제나 **기준 상자의 면**이고 다른 부품이 아니다.
156
+
157
+ 지금은 둘이 **같은 면을 붙잡게** 해서 우회한다. 상자의 같은 면에서 잰 거리를 둘 다
158
+ 지키면 서로의 거리도 지켜지기 때문이다. 그래서 롤프레스의 하우징이 `span` 으로 상자
159
+ 면까지 닿게 만들어 놓았다 — HMI 가 잡을 면과 하우징이 잡을 면을 같게 하려고.
160
+
161
+ 우회가 안 되는 자리도 있었다. 충방전기의 채널 램프는 선반과 같은 피치로 반복되는데, 두
162
+ 줄이 저마다 상자를 채우므로 줄 사이의 45 가 배율만큼 벌어졌다. 램프를 선반 앞턱에 물려
163
+ 같은 줄 중심을 쓰게 해서 넘겼다.
164
+
165
+ 부모가 생기면 이 우회들이 없어진다.
166
+
167
+ ## 무엇으로 확인하나
168
+
169
+ ```bash
170
+ node test/browser/check-figure-scaling.mjs # things-factory
171
+ ```
172
+
173
+ 보는 것 셋이다.
174
+
175
+ - **한 덩어리로 남나.** 닿는 부품을 이어 덩어리를 만들고, 1 배에서 한 덩어리이던 것이
176
+ 늘려도 한 덩어리인지 본다. 쌍으로 세면 안 된다 — AGV 바퀴가 차체 바닥과 26 벌어졌다고
177
+ 네 건이 났는데 그 사이는 underbody 가 메우고 있었다.
178
+ - **일곱 조합 전부.** x · y · z · x-y · x-z · y-z · x-y-z. 세 축을 같이 늘린 것만 보면
179
+ 축마다 따로 걸리는 규칙을 못 본다. 오늘 잡은 결함 둘이 다 한 축만 늘렸을 때 드러났다.
180
+ - **z-fighting.** 같은 평면 · **같은 법선** · 겹치는 발자국 셋이 다 맞을 때만이다. 맞대어
181
+ 놓은 것은 서로 등을 져서 뒷면이 잘려 나가므로 멀쩡하다.
182
+
183
+ 미리보기도 여덟을 나란히 놓는다 — 저작한 크기와 일곱 조합이다.
@@ -71,6 +71,7 @@ const { errors, violations } = validate(source)
71
71
  | `missing-shape-path` | `polygon` 인데 `shape.path` 가 없거나 점이 3 개 미만이다 |
72
72
  | `hollow-too-thick` | 벽이나 바닥이 치수를 다 먹는다 — 팔 안쪽이 남지 않는다 |
73
73
  | `hollow-not-convex` | 오목한 `polygon` 은 아직 못 판다 — 안쪽 테가 제 몸을 가로지른다 |
74
+ | `bad-aspect-axis` | `aspect-` 가 자기 자신이나 또 다른 `aspect-` 축을 가리킨다 — 따라갈 배율이 정해지지 않는다 |
74
75
  | `bad-shape-point` | `shape.path` 의 점이 `{ x, y }` 가 아니다 |
75
76
 
76
77
  ### 재질
@@ -127,6 +128,7 @@ clip 의 이름은 부품과 같은 코드를 쓴다 — 없으면 `missing-name
127
128
  | `segments-ignored` | 곡면이 없는 프리미티브에 `segments` 를 주었다 |
128
129
  | `repeat-ignored` | `sizing` 이 `'repeat'` 가 아닌데 `repeat` 를 주었다 |
129
130
  | `anchor-ignored` | `sizing` 이 `'scale'` 인데 `anchor` 를 주었다 — 상자와 함께 커지는 부품은 붙잡을 면이 없다 |
131
+ | `keep-round-ignored` | 단면이 원이 아닌 프리미티브에 `keepRound` 를 주었다 |
130
132
  | `hollow-ignored` | 밀어 만드는 것이 아닌 프리미티브에 `shape.hollow` 를 주었다 |
131
133
  | `pivot-ignored` | `rotation` 이 아닌 채널에 `pivot` 을 주었다 — 아무 일도 안 일어난다 |
132
134
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hatiolab/figure-model",
3
- "version": "0.1.11",
3
+ "version": "0.1.12",
4
4
  "description": "Figure 저작 결과의 정본 형식과 검증 — 재질별로 병합되고 이름이 붙은 부품 그래프. 3D 로 저작한 형상 하나가 씬 컴포넌트로 서는 데 필요한 것을 담는다.",
5
5
  "keywords": [
6
6
  "figure",