@hatiolab/things-scene 10.1.7 → 10.1.8
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-instance.d.ts.map +1 -1
- package/dist-types/figure/figure-part-component.d.ts +16 -7
- package/dist-types/figure/figure-part-component.d.ts.map +1 -1
- package/dist-types/figure/figure-real-object.d.ts.map +1 -1
- package/dist-types/figure/figure-shape.d.ts +58 -0
- package/dist-types/figure/figure-shape.d.ts.map +1 -0
- package/dist-types/figure/figure-sizing.d.ts +20 -7
- package/dist-types/figure/figure-sizing.d.ts.map +1 -1
- package/dist-types/figure/index.d.ts +1 -0
- package/dist-types/figure/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/things-scene-min.js +7 -7
- package/things-scene-min.js.map +1 -1
- package/things-scene.mjs +1 -1
- package/things-scene.mjs.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"figure-instance.d.ts","sourceRoot":"","sources":["../../src/figure/figure-instance.ts"],"names":[],"mappings":"AAIA,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAClD,OAAO,KAAK,MAAM,wBAAwB,CAAA;AAE1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"figure-instance.d.ts","sourceRoot":"","sources":["../../src/figure/figure-instance.ts"],"names":[],"mappings":"AAIA,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAClD,OAAO,KAAK,MAAM,wBAAwB,CAAA;AAE1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkF7D,qBAAa,cAAe,SAAQ,mBAAe;IACjD;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIvC,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,OAAO,IAAI,OAAO;IAIlB,IAAI,MAAM,IAAI,eAAe,CAE5B;IAED,eAAe,IAAI,WAAW,GAAG,SAAS;IAI1C,0CAA0C;IAC1C,IAAI,MAAM,yDAET;IAED,MAAM,CAAC,GAAG,EAAE,kBAAkB;IAoC9B;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAQlB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,SAAS;IAuDjB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IA2ChB,0DAA0D;IAC1D,OAAO,CAAC,UAAU;IAgFlB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAiBrB;;;;;OAKG;IACM,UAAU,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;CAGvD;AAMD,eAAe,cAAc,CAAA"}
|
|
@@ -20,6 +20,16 @@ export interface FigurePartState {
|
|
|
20
20
|
x: number;
|
|
21
21
|
y: number;
|
|
22
22
|
}[];
|
|
23
|
+
/**
|
|
24
|
+
* 속을 판다. 벽 두께가 0 보다 크면 그만큼 안으로 들어온 테가 생긴다.
|
|
25
|
+
*
|
|
26
|
+
* 트레이 · 토트 · 통 · 케이스가 이것이다. 없을 때는 바닥판에 벽 넷을 세워야 했고,
|
|
27
|
+
* 부품이 다섯인 것보다 네 귀퉁이에서 굴림이 어긋나는 것이 문제였다.
|
|
28
|
+
*/
|
|
29
|
+
hollow?: {
|
|
30
|
+
wall: number;
|
|
31
|
+
floor?: number;
|
|
32
|
+
};
|
|
23
33
|
/** 팔레트 토큰. 값이 아니라 이름을 둔다 — 테마를 바꾸면 따라온다. */
|
|
24
34
|
token?: string;
|
|
25
35
|
preset?: keyof typeof MATERIAL_PRESETS;
|
|
@@ -162,19 +172,18 @@ export declare class FigurePartRealObject extends RealObject {
|
|
|
162
172
|
* 여기서는 두께 1 로 만들고 배율로 키운다. 굴림은 평면 안의 값이라 배율에 안 눌린다.
|
|
163
173
|
*/
|
|
164
174
|
private extrudedGeometry;
|
|
165
|
-
private crossSection;
|
|
166
|
-
/**
|
|
167
|
-
* 재질. **팔레트 토큰과 프리셋으로만 정한다** — 배포된 Figure 와 같은 규칙이다.
|
|
168
|
-
*
|
|
169
|
-
* 창고가 값으로 공유하므로 같은 토큰·프리셋을 쓰는 부품끼리 재질 하나를 나눠 쓴다.
|
|
170
|
-
* 접었을 때 세어지는 「재질 묶음」이 저작 중에도 그대로 눈에 보인다.
|
|
171
|
-
*/
|
|
172
175
|
private material;
|
|
176
|
+
/** 속을 판 것인가 — 두께까지 형상에 구워져 있다. */
|
|
177
|
+
private get isHollow();
|
|
173
178
|
/**
|
|
174
179
|
* 치수를 배율로 준다.
|
|
175
180
|
*
|
|
176
181
|
* 단면을 민 것은 평면 치수가 이미 형상에 구워져 있으므로 두께만 키운다 — 평면까지
|
|
177
182
|
* 배율을 걸면 두 번 곱해진다.
|
|
183
|
+
*
|
|
184
|
+
* **속을 판 것은 두께도 구워져 있다.** 벽과 바닥 두께를 지키려면 제 높이로 만들 수밖에
|
|
185
|
+
* 없고, 그러고 나서 두께에 배율을 또 걸면 165 짜리 통이 165 배가 된다. 카메라가 통
|
|
186
|
+
* 안으로 들어가 화면이 흰 벽만 보여 준 것이 이것이었다.
|
|
178
187
|
*/
|
|
179
188
|
updateDimension(): void;
|
|
180
189
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"figure-part-component.d.ts","sourceRoot":"","sources":["../../src/figure/figure-part-component.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAClD,OAAO,KAAK,MAAM,wBAAwB,CAAA;AAE1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAGrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAI3D,OAAO,EAA4B,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"figure-part-component.d.ts","sourceRoot":"","sources":["../../src/figure/figure-part-component.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"figure-real-object.d.ts","sourceRoot":"","sources":["../../src/figure/figure-real-object.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"figure-real-object.d.ts","sourceRoot":"","sources":["../../src/figure/figure-real-object.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAMrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAGxD,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,sBAAsB,CAAA;AACzE,OAAO,KAAK,EAEV,qBAAqB,EACrB,eAAe,EAEhB,MAAM,uBAAuB,CAAA;AAY9B;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,KAAK,CAAC,cAAc,GAAG,IAAI,CAuBzF;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,GAAG,KAAK,CAAC,cAAc,GAAG,IAAI,CAY/F;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,qBAAqB,GAAG,KAAK,CAAC,cAAc,GAAG,IAAI,CAuBjG;AAuDD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,cAAc,GAAG,IAAI,CA0CnG;AA8ID;;;;;GAKG;AACH,wBAAgB,QAAQ,CACtB,OAAO,EAAE;IAAE,KAAK,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EAC3D,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,MAAM,CAIR;AAiFD,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C,2CAA2C;IAC3C,OAAO,CAAC,WAAW,CAAgC;IACnD,6CAA6C;IAC7C,OAAO,CAAC,MAAM,CAAkB;IAChC,iDAAiD;IACjD,OAAO,CAAC,aAAa,CAA2C;IAChE,kDAAkD;IAClD,OAAO,CAAC,MAAM,CAAoB;IAClC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,gBAAgB,CAAC,CAAa;IAEtC,IAAI,MAAM,IAAI,cAAc,GAAG,IAAI,CAElC;IAED;;;;;;OAMG;IACH,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAE/C;IAED;;;;;OAKG;IACH,WAAW,IAAI,IAAI;IAgBnB;;;;;;;;;;OAUG;IACH,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAE9C;IAED;;;;OAIG;IACH,WAAW,IAAI,IAAI;IASV,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAM9D,KAAK;IAsCL;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAwEjB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAUpB;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,OAAO,CAAC,YAAY;IAyEpB;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS;IA4BjB;;;;;;;;OAQG;IACH,OAAO,CAAC,UAAU;IAwBlB;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAoDnB;;;;;;;;;OASG;IACH,IAAa,cAAc,IAAI,MAAM,CAepC;IAED;;;;;;;;;;;OAWG;IACH,eAAe,IAAI,IAAI;IAoBvB;;;;OAIG;IACM,UAAU,IAAI,UAAU,GAAG,IAAI;IAIxC,KAAK;CAWN"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
/** 단면 하나를 만드는 데 필요한 것 전부. 청사진이든 컴포넌트 state 든 여기로 맞춰 온다. */
|
|
3
|
+
export interface FigureProfile {
|
|
4
|
+
/** `polygon` 이면 `path` 를 쓰고, 아니면 사각형이다. */
|
|
5
|
+
polygon?: boolean;
|
|
6
|
+
/** 평면도의 가로. */
|
|
7
|
+
width: number;
|
|
8
|
+
/** 평면도의 세로. */
|
|
9
|
+
depth: number;
|
|
10
|
+
/** 세워서 밀 두께. */
|
|
11
|
+
height: number;
|
|
12
|
+
round?: number;
|
|
13
|
+
path?: readonly {
|
|
14
|
+
x: number;
|
|
15
|
+
y: number;
|
|
16
|
+
}[];
|
|
17
|
+
hollow?: {
|
|
18
|
+
wall: number;
|
|
19
|
+
floor?: number;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* 세워서 민 형상 — **제 중심을 원점에 두고** 돌려준다.
|
|
24
|
+
*
|
|
25
|
+
* 속을 판 것은 바닥판 하나에 고리 하나를 **합쳐** 돌려준다. 부품 하나가 draw call
|
|
26
|
+
* 하나라는 규약을 지켜야 한다.
|
|
27
|
+
*/
|
|
28
|
+
export declare function profileGeometry(profile: FigureProfile): THREE.BufferGeometry | null;
|
|
29
|
+
/** 바깥 테. **부품 중심을 원점으로** 만든다 — 자리는 부르는 쪽이 든다. */
|
|
30
|
+
export declare function outlineOf(profile: FigureProfile): THREE.Shape | null;
|
|
31
|
+
/**
|
|
32
|
+
* 가운데를 원점에 둔 사각형 단면. 굴림이 있으면 모서리를 깎는다.
|
|
33
|
+
*
|
|
34
|
+
* 이름에 `rect` 만 두지 않는다 — `threed/top-outline.ts` 에 이미 `rectOutline` 이 있고
|
|
35
|
+
* 그쪽은 톱뷰용 네 점이다. 같은 묶음에서 내보내면 어느 것인지 알 수 없다.
|
|
36
|
+
*
|
|
37
|
+
* 속을 판 것의 안쪽 테도 이것으로 만든다 — 같은 식으로 만들어야 바깥과 안쪽 모서리가
|
|
38
|
+
* 같은 모양으로 따라온다.
|
|
39
|
+
*/
|
|
40
|
+
export declare function roundedRect(width: number, depth: number, round: number): THREE.Shape | null;
|
|
41
|
+
/**
|
|
42
|
+
* 안쪽 테 — 바깥 테에서 벽 두께만큼 안으로 들어온 선.
|
|
43
|
+
*
|
|
44
|
+
* 사각형은 치수에서 양쪽 두께를 빼고 굴림도 그만큼 줄인다(0 아래로는 각진 모서리다).
|
|
45
|
+
*
|
|
46
|
+
* 다각형은 변마다 안쪽으로 밀어 이웃과 다시 만나게 한다. **볼록한 것만 된다** — 오목한
|
|
47
|
+
* 자리에서는 그 교점이 도형 밖으로 나가 테가 제 몸을 가로지른다. 형식 검사가 그것을
|
|
48
|
+
* 막으므로(`hollow-not-convex`) 여기서는 볼록하다고 보고 센다.
|
|
49
|
+
*/
|
|
50
|
+
export declare function innerOutlineOf(profile: FigureProfile, wall: number): THREE.Vector2[] | null;
|
|
51
|
+
/**
|
|
52
|
+
* 2D 로 칠할 테들 — 바깥 하나에 안쪽이 있으면 하나 더.
|
|
53
|
+
*
|
|
54
|
+
* 톱뷰는 **위에서 내려다본 것**이라, 속을 판 것은 가운데가 뚫려 보여야 한다. 캔버스는
|
|
55
|
+
* 한 path 안에 반대로 도는 고리를 함께 넣으면 그 부분을 빼고 칠한다(nonzero 규칙).
|
|
56
|
+
*/
|
|
57
|
+
export declare function outlinesFor2D(profile: FigureProfile): THREE.Vector2[][] | null;
|
|
58
|
+
//# sourceMappingURL=figure-shape.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"figure-shape.d.ts","sourceRoot":"","sources":["../../src/figure/figure-shape.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,2DAA2D;AAC3D,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,eAAe;IACf,KAAK,EAAE,MAAM,CAAA;IACb,eAAe;IACf,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,SAAS;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC1C,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC1C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,KAAK,CAAC,cAAc,GAAG,IAAI,CA2BnF;AAkBD,iDAAiD;AACjD,wBAAgB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAYpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CA4B3F;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CA+C3F;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,CAa9E"}
|
|
@@ -11,7 +11,7 @@ import type { FigureAnchorRule, FigureBlueprintMember, FigureVec3 } from './figu
|
|
|
11
11
|
* ## 규칙 넷
|
|
12
12
|
*
|
|
13
13
|
* scale 비례 확대. 인스턴스 배율을 그대로 받는다 — 아무것도 하지 않아도 된다
|
|
14
|
-
* fixed 크기는 그대로. **붙잡은
|
|
14
|
+
* fixed 크기는 그대로. **붙잡은 자리에서 잰 거리**를 지킨다
|
|
15
15
|
* stretch 가장 길게 뻗은 축이 **양쪽 면 사이를 채운다**
|
|
16
16
|
* repeat 크기는 그대로 두고 **개수**가 늘어난다
|
|
17
17
|
*
|
|
@@ -28,9 +28,14 @@ import type { FigureAnchorRule, FigureBlueprintMember, FigureVec3 } from './figu
|
|
|
28
28
|
*
|
|
29
29
|
* 세 가지가 한 규칙의 세 경우다. 축마다
|
|
30
30
|
*
|
|
31
|
-
*
|
|
32
|
-
* 한
|
|
33
|
-
* 두 면을 다 붙잡는다
|
|
31
|
+
* 아무 데도 안 붙잡는다 비례로 따라간다 `scale`
|
|
32
|
+
* 한 자리를 붙잡는다 거기서 잰 거리 유지 `fixed` · `repeat` 의 옆 축
|
|
33
|
+
* 두 면을 다 붙잡는다 가운데가 늘어나 채운다 `stretch` 의 긴 축
|
|
34
|
+
*
|
|
35
|
+
* 붙잡는 자리는 아래 면(`min`) · 가운데(`center`) · 위 면(`max`) 셋이다. 셋이 같은
|
|
36
|
+
* 규칙이다 — 기준이 어디냐만 다르다. 한동안 `center` 만 「비례로 밀린다」였는데, 그러면
|
|
37
|
+
* 가운데 가까이 저작한 것이 상자가 커질 때마다 밖으로 밀려 이웃과 갈라진다. 크레들의
|
|
38
|
+
* V 홈 패드 둘이 ±80 에서 ±240 으로 벌어져 축을 놓친 것이 그것이었다.
|
|
34
39
|
*
|
|
35
40
|
* 3D 도구의 나인슬라이스가 하는 일과 같고, 여기서는 그것이 세 축으로 있다.
|
|
36
41
|
*
|
|
@@ -55,7 +60,7 @@ import type { FigureAnchorRule, FigureBlueprintMember, FigureVec3 } from './figu
|
|
|
55
60
|
*
|
|
56
61
|
* fixed 가까운 면
|
|
57
62
|
* stretch 가장 긴 축은 `span`, 나머지는 가까운 면
|
|
58
|
-
* repeat 늘어나는 축은 `center`(줄이
|
|
63
|
+
* repeat 늘어나는 축은 `center`(줄이 제자리에 남는다), 나머지는 가까운 면
|
|
59
64
|
*
|
|
60
65
|
* **가까운 면**은 상자의 위 절반에 저작한 것은 위를, 아래 절반은 아래를 붙잡는 것이다.
|
|
61
66
|
* 사람이 램프를 꼭대기 근처에 놓을 때 뜻하는 것이 그것이다. 정확히 가운데면 `center` 이고,
|
|
@@ -75,8 +80,16 @@ export type FigureAxis = 'x' | 'y' | 'z';
|
|
|
75
80
|
/**
|
|
76
81
|
* 되돌릴 것이 있는 부품인가.
|
|
77
82
|
*
|
|
78
|
-
* `scale` 은 부모 배율을 그대로 받으면 되므로 합쳐 둔 채로 그린다. 나머지
|
|
79
|
-
*
|
|
83
|
+
* `scale` 은 부모 배율을 그대로 받으면 되므로 합쳐 둔 채로 그린다. 나머지 셋은 따로
|
|
84
|
+
* 세운다.
|
|
85
|
+
*
|
|
86
|
+
* **곡면은 `scale` 이어도 따로 선다.** 합친 형상은 변환을 하나만 받는데, 인스턴스가
|
|
87
|
+
* 축마다 다른 배율이면 그 하나가 원기둥을 타원 기둥으로 만든다. 원기둥이라고 적어
|
|
88
|
+
* 놓고 원기둥이 아닌 것을 그리게 된다.
|
|
89
|
+
*
|
|
90
|
+
* 값이 있는 만큼 값을 치른다 — 곡면 부품 하나가 draw call 하나다. figure-model 의
|
|
91
|
+
* `standsAlone` 이 **같은 답**을 내야 한다. 갈리면 성숙도가 세는 수와 화면이 그리는
|
|
92
|
+
* 수가 달라진다.
|
|
80
93
|
*/
|
|
81
94
|
export declare function needsOwnMesh(member: FigureBlueprintMember): boolean;
|
|
82
95
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"figure-sizing.d.ts","sourceRoot":"","sources":["../../src/figure/figure-sizing.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEhG
|
|
1
|
+
{"version":3,"file":"figure-sizing.d.ts","sourceRoot":"","sources":["../../src/figure/figure-sizing.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEhG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,qBAAqB,EAC7B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,GACf,gBAAgB,CAYlB;AAuCD,kCAAkC;AAClC,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAExC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAEnE;AAeD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,qBAAqB,GAAG,UAAU,CAsBvE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,qBAAqB,GAAG,UAAU,CAKrE;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,UAAU,GACf,UAAU,CAwCZ;AAiHD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,UAAU,GACf,UAAU,CAsCZ;AASD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,UAAU,GACf;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAwB3D;AAED;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,MAAM,CAAA;AAE/B;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhF"}
|
|
@@ -10,5 +10,6 @@ export * from './figure-blueprint.js';
|
|
|
10
10
|
export * from './figure-palette.js';
|
|
11
11
|
export * from './figure-registry.js';
|
|
12
12
|
export * from './figure-real-object.js';
|
|
13
|
+
export * from './figure-shape.js';
|
|
13
14
|
export * from './figure-sizing.js';
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/figure/index.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,cAAc,sBAAsB,CAAA;AAKpC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/figure/index.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,cAAc,sBAAsB,CAAA;AAKpC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AASvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hatiolab/things-scene",
|
|
3
|
-
"version": "10.1.
|
|
3
|
+
"version": "10.1.8",
|
|
4
4
|
"description": "A high-performance 2D/3D scene graph library for building interactive visual editors, combining HTML5 Canvas and Three.js to enable facility visualization, data-driven animations, and real-time monitoring dashboards",
|
|
5
5
|
"main": "things-scene-min.js",
|
|
6
6
|
"module": "things-scene.mjs",
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
},
|
|
91
91
|
"homepage": "https://github.com/hatiolab/things-scene#readme",
|
|
92
92
|
"dependencies": {
|
|
93
|
-
"@hatiolab/figure-model": "^0.1.
|
|
93
|
+
"@hatiolab/figure-model": "^0.1.12",
|
|
94
94
|
"@wizpanda/super-gif": "^0.0.6",
|
|
95
95
|
"dompurify": "^3.3.1",
|
|
96
96
|
"jsonata": "^1.8.6",
|