@hatiolab/things-scene 10.0.6 → 10.1.1
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/diagnostics/inspector.d.ts +47 -0
- package/dist-types/diagnostics/inspector.d.ts.map +1 -1
- package/dist-types/figure/figure-blueprint.d.ts +123 -0
- package/dist-types/figure/figure-blueprint.d.ts.map +1 -0
- package/dist-types/figure/figure-instance.d.ts +299 -0
- package/dist-types/figure/figure-instance.d.ts.map +1 -0
- package/dist-types/figure/figure-palette.d.ts +37 -0
- package/dist-types/figure/figure-palette.d.ts.map +1 -0
- package/dist-types/figure/figure-part-component.d.ts +324 -0
- package/dist-types/figure/figure-part-component.d.ts.map +1 -0
- package/dist-types/figure/figure-real-object.d.ts +92 -0
- package/dist-types/figure/figure-real-object.d.ts.map +1 -0
- package/dist-types/figure/figure-registry.d.ts +71 -0
- package/dist-types/figure/figure-registry.d.ts.map +1 -0
- package/dist-types/figure/index.d.ts +13 -0
- package/dist-types/figure/index.d.ts.map +1 -0
- package/dist-types/interfaces/real-object.d.ts +34 -0
- package/dist-types/interfaces/real-object.d.ts.map +1 -1
- package/dist-types/layer/model-layer.d.ts +9 -2
- package/dist-types/layer/model-layer.d.ts.map +1 -1
- package/dist-types/model/arrange.d.ts +61 -0
- package/dist-types/model/arrange.d.ts.map +1 -0
- package/dist-types/model/index.d.ts +1 -0
- package/dist-types/model/index.d.ts.map +1 -1
- package/dist-types/things-scene/index.d.ts +1 -0
- package/dist-types/things-scene/index.d.ts.map +1 -1
- package/dist-types/threed/common.d.ts +8 -0
- package/dist-types/threed/common.d.ts.map +1 -1
- package/dist-types/threed/coordinate-ground.d.ts +51 -0
- package/dist-types/threed/coordinate-ground.d.ts.map +1 -0
- package/dist-types/threed/factories/camera.d.ts +1 -1
- package/dist-types/threed/factories/cube.d.ts +8 -0
- package/dist-types/threed/factories/cube.d.ts.map +1 -1
- package/dist-types/threed/factories/cylinder.d.ts +17 -0
- package/dist-types/threed/factories/cylinder.d.ts.map +1 -1
- package/dist-types/threed/factories/sphere.d.ts +11 -0
- package/dist-types/threed/factories/sphere.d.ts.map +1 -1
- package/dist-types/threed/factories/wall.d.ts +8 -0
- package/dist-types/threed/factories/wall.d.ts.map +1 -1
- package/dist-types/threed/floor/floor.d.ts +22 -0
- package/dist-types/threed/floor/floor.d.ts.map +1 -1
- package/dist-types/threed/geometry-bank.d.ts +64 -0
- package/dist-types/threed/geometry-bank.d.ts.map +1 -0
- package/dist-types/threed/index.d.ts +8 -0
- package/dist-types/threed/index.d.ts.map +1 -1
- package/dist-types/threed/instanced-set.d.ts +211 -0
- package/dist-types/threed/instanced-set.d.ts.map +1 -0
- package/dist-types/threed/managers/event-manager3d.d.ts +7 -0
- package/dist-types/threed/managers/event-manager3d.d.ts.map +1 -1
- package/dist-types/threed/managers/gizmo-operation-manager.d.ts +8 -0
- package/dist-types/threed/managers/gizmo-operation-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/renderer-manager.d.ts +3 -3
- package/dist-types/threed/managers/renderer-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/scene-manager.d.ts +33 -9
- package/dist-types/threed/managers/scene-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/types.d.ts +10 -0
- package/dist-types/threed/managers/types.d.ts.map +1 -1
- package/dist-types/threed/material-3d.d.ts +9 -0
- package/dist-types/threed/material-3d.d.ts.map +1 -1
- package/dist-types/threed/parted-real-object.d.ts +79 -0
- package/dist-types/threed/parted-real-object.d.ts.map +1 -0
- package/dist-types/threed/real-object-camera-meshed.d.ts +1 -1
- package/dist-types/threed/real-object-dom-texture.d.ts +2 -2
- package/dist-types/threed/real-object-extrude.d.ts +14 -0
- package/dist-types/threed/real-object-extrude.d.ts.map +1 -1
- package/dist-types/threed/real-object-gltf.d.ts +11 -0
- package/dist-types/threed/real-object-gltf.d.ts.map +1 -1
- package/dist-types/threed/real-object-mesh.d.ts +79 -2
- package/dist-types/threed/real-object-mesh.d.ts.map +1 -1
- package/dist-types/threed/real-object-plane-2d.d.ts +2 -2
- package/dist-types/threed/real-object-scene.d.ts +2 -2
- package/dist-types/threed/real-object-service.d.ts +2 -2
- package/dist-types/threed/real-object.d.ts +46 -2
- package/dist-types/threed/real-object.d.ts.map +1 -1
- package/dist-types/threed/segments.d.ts +49 -0
- package/dist-types/threed/segments.d.ts.map +1 -0
- package/dist-types/threed/three-capability.d.ts +18 -0
- package/dist-types/threed/three-capability.d.ts.map +1 -1
- package/dist-types/threed/three-container.d.ts +8 -3
- package/dist-types/threed/three-container.d.ts.map +1 -1
- package/dist-types/threed/top-outline.d.ts +37 -0
- package/dist-types/threed/top-outline.d.ts.map +1 -0
- package/dist-types/threed/utils/dispose.d.ts.map +1 -1
- package/dist-types/transition/transition-effect.d.ts.map +1 -1
- package/package.json +3 -3
- package/things-scene-min.js +11 -11
- package/things-scene-min.js.map +1 -1
- package/things-scene-transfer.mjs +3 -3
- package/things-scene.mjs +3 -3
- package/things-scene.mjs.map +1 -1
|
@@ -1,15 +1,92 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
|
+
import type { MaterialSpec } from './material-bank.js';
|
|
2
3
|
import { RealObject } from './real-object.js';
|
|
3
4
|
export declare abstract class RealObjectMesh extends RealObject<THREE.Mesh> {
|
|
4
|
-
protected getObject3dInstance(): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>;
|
|
5
|
+
protected getObject3dInstance(): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>;
|
|
5
6
|
build(): void;
|
|
7
|
+
/**
|
|
8
|
+
* 불투명도.
|
|
9
|
+
*
|
|
10
|
+
* 나눠 쓰는 재질은 **고치지 않는다** — `state.alpha` 와 faint 는 코어의 오버레이가
|
|
11
|
+
* 공유 변형을 스왑해 처리하고(`applyMaterialOpacity`), fillStyle 의 alpha 는 창고
|
|
12
|
+
* 키(spec)에 들어 있다. 여기서 굽으면 같은 재질을 쓰는 다른 인스턴스가 함께 흐려진다.
|
|
13
|
+
*/
|
|
6
14
|
updateAlpha(): void;
|
|
7
15
|
updateFillStyle(): void;
|
|
8
16
|
updateStrokeStyle(): void;
|
|
9
17
|
updateDimension(): void;
|
|
10
18
|
protected abstract buildGeometry(): void;
|
|
19
|
+
/**
|
|
20
|
+
* 재질을 창고에서 받을 수 있나.
|
|
21
|
+
*
|
|
22
|
+
* 무늬(pattern)·그라디언트 fillStyle 은 인스턴스마다 캔버스 텍스처를 만들어야 하므로
|
|
23
|
+
* 나눠 쓸 수 없다. 색이 문자열이면 나눠 쓴다 — 캐리어·설비 대부분이 이쪽이다.
|
|
24
|
+
*/
|
|
25
|
+
protected get canShareMaterial(): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* 재질을 나눠 쓸 수 없는 사유. 나눠 쓸 수 있으면 `undefined`.
|
|
28
|
+
*
|
|
29
|
+
* 사유를 문장으로 두는 이유 — 진단이 「안 된다」만 말하면 저작자가 무엇을 고쳐야
|
|
30
|
+
* 하는지 알 수 없다.
|
|
31
|
+
*/
|
|
32
|
+
get materialSharingIssue(): string | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* 이 컴포넌트가 **재질을 반드시 나눠 써야** 하나.
|
|
35
|
+
*
|
|
36
|
+
* 대량으로 놓이는 것(캐리어·선반 칸·롤러)은 그렇다고 선언한다. 선언해 두면 무늬·
|
|
37
|
+
* 그라디언트가 들어왔을 때 **조용히 인스턴스별 재질로 갈리지 않고 진단에 잡힌다.**
|
|
38
|
+
*
|
|
39
|
+
* 컴포넌트 클래스에 `static requiresSharedMaterial = true` 로 선언한다 —
|
|
40
|
+
* `static requires3d` 와 같은 방식이라 인스턴스를 만들지 않고도 조회할 수 있다.
|
|
41
|
+
*
|
|
42
|
+
* **그림은 여전히 fillStyle 을 따른다.** 선언을 어겼다고 다른 것을 그리지는 않는다 —
|
|
43
|
+
* 화면이 원인을 지어내면 안 되기 때문이다. 대신 비용이 드러난다.
|
|
44
|
+
*/
|
|
45
|
+
get requiresSharedMaterial(): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* 재질 공유 상태 — 진단이 읽는다.
|
|
48
|
+
*
|
|
49
|
+
* `violated` 는 「나눠 써야 한다고 선언했는데 못 쓰고 있다」는 뜻이다. 대량 배치에서
|
|
50
|
+
* 재질이 인스턴스 수만큼 생기는 상태이므로 저작을 고쳐야 한다.
|
|
51
|
+
*/
|
|
52
|
+
get materialSharing(): {
|
|
53
|
+
shared: boolean;
|
|
54
|
+
required: boolean;
|
|
55
|
+
violated: boolean;
|
|
56
|
+
reason?: string;
|
|
57
|
+
bankKey?: string;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* 창고 키. 관례는 `"{컴포넌트명}|{용도}"` — 컴포넌트 종류가 다르면 base 를 나눈다.
|
|
61
|
+
*
|
|
62
|
+
* 종류를 키에 넣는 이유는 진단이다. spec 이 같으면 종류를 넘어 공유해도 결과가 같지만,
|
|
63
|
+
* 창고를 들여다볼 때 어느 컴포넌트가 무엇을 쓰는지 보이는 편이 낫다.
|
|
64
|
+
*/
|
|
65
|
+
protected get materialBankKey(): string;
|
|
66
|
+
/**
|
|
67
|
+
* 창고에 넘길 intrinsic spec — **색은 넣지 않는다.**
|
|
68
|
+
*
|
|
69
|
+
* 색은 `MaterialBank.material(key, spec, color)` 의 셋째 인자로 넘겨 색상별 공유
|
|
70
|
+
* 변형이 되게 한다. spec 에 넣으면 색마다 base 가 하나씩 생겨 공유가 반토막 난다.
|
|
71
|
+
*/
|
|
72
|
+
protected materialSpec(): MaterialSpec;
|
|
73
|
+
/**
|
|
74
|
+
* 재질을 세운다.
|
|
75
|
+
*
|
|
76
|
+
* 나눠 쓸 수 있으면 `MaterialBank` 에서 받는다 — **인스턴스가 수천 개여도 재질은 spec·색
|
|
77
|
+
* 조합 수만큼만 생긴다.** 전에는 인스턴스마다 `new MeshStandardMaterial()` 이라 캐리어
|
|
78
|
+
* 1만 개면 재질도 1만 개였고, 같은 geometry 를 써도 재질이 달라 draw call 이 합쳐지지
|
|
79
|
+
* 않았다.
|
|
80
|
+
*
|
|
81
|
+
* 나눠 쓸 수 없으면(무늬·그라디언트) 전처럼 제 것을 만든다.
|
|
82
|
+
*/
|
|
11
83
|
buildMaterial(): void;
|
|
84
|
+
/**
|
|
85
|
+
* 창고 재질을 물린다. 색·재질 속성이 바뀔 때마다 **고치지 않고 다시 받는다** —
|
|
86
|
+
* 공유물을 고치면 같은 재질을 쓰는 다른 인스턴스가 함께 바뀐다.
|
|
87
|
+
*/
|
|
88
|
+
protected applyBankMaterial(): void;
|
|
12
89
|
updateMaterial3d(): void;
|
|
13
|
-
clear(): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>;
|
|
90
|
+
clear(): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>;
|
|
14
91
|
}
|
|
15
92
|
//# sourceMappingURL=real-object-mesh.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"real-object-mesh.d.ts","sourceRoot":"","sources":["../../src/threed/real-object-mesh.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"real-object-mesh.d.ts","sourceRoot":"","sources":["../../src/threed/real-object-mesh.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAG7C,8BAAsB,cAAe,SAAQ,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;IACjE,SAAS,CAAC,mBAAmB;IAI7B,KAAK;IAgBL;;;;;;OAMG;IACH,WAAW;IAUX,eAAe;IAwCf,iBAAiB;IAuBjB,eAAe,IAAI,IAAI;IA0BvB,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI;IAExC;;;;;OAKG;IACH,SAAS,KAAK,gBAAgB,IAAI,OAAO,CAExC;IAED;;;;;OAKG;IACH,IAAI,oBAAoB,IAAI,MAAM,GAAG,SAAS,CAU7C;IAED;;;;;;;;;;;OAWG;IACH,IAAI,sBAAsB,IAAI,OAAO,CAEpC;IAED;;;;;OAKG;IACH,IAAI,eAAe,IAAI;QACrB,MAAM,EAAE,OAAO,CAAA;QACf,QAAQ,EAAE,OAAO,CAAA;QACjB,QAAQ,EAAE,OAAO,CAAA;QACjB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,CAcA;IAED;;;;;OAKG;IACH,SAAS,KAAK,eAAe,IAAI,MAAM,CAEtC;IAED;;;;;OAKG;IACH,SAAS,CAAC,YAAY,IAAI,YAAY;IAkBtC;;;;;;;;;OASG;IACH,aAAa,IAAI,IAAI;IAYrB;;;OAGG;IACH,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAUnC,gBAAgB;IAiBhB,KAAK;CAQN"}
|
|
@@ -8,7 +8,7 @@ export declare class RealObjectPlane2D extends RealObject<THREE.Mesh> {
|
|
|
8
8
|
private _debounceTimer?;
|
|
9
9
|
private _origInvalidate?;
|
|
10
10
|
constructor(component: any);
|
|
11
|
-
protected getObject3dInstance(): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>;
|
|
11
|
+
protected getObject3dInstance(): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>;
|
|
12
12
|
build(): void;
|
|
13
13
|
updateAlpha(): void;
|
|
14
14
|
get dimension(): {
|
|
@@ -34,7 +34,7 @@ export declare class RealObjectPlane2D extends RealObject<THREE.Mesh> {
|
|
|
34
34
|
updateStrokeStyle(): void;
|
|
35
35
|
updateText(): void;
|
|
36
36
|
updateMaterial3d(): void;
|
|
37
|
-
clear(): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>;
|
|
37
|
+
clear(): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>;
|
|
38
38
|
dispose(): void;
|
|
39
39
|
}
|
|
40
40
|
//# sourceMappingURL=real-object-plane-2d.d.ts.map
|
|
@@ -3,9 +3,9 @@ import { RealObject } from './real-object.js';
|
|
|
3
3
|
export declare class RealObjectScene extends RealObject<THREE.Scene> {
|
|
4
4
|
private _floor?;
|
|
5
5
|
private _animationMixer?;
|
|
6
|
-
protected getObject3dInstance(): THREE.Scene
|
|
6
|
+
protected getObject3dInstance(): THREE.Scene<THREE.Object3DEventMap>;
|
|
7
7
|
dispose(): void;
|
|
8
|
-
clear(): THREE.Scene
|
|
8
|
+
clear(): THREE.Scene<THREE.Object3DEventMap>;
|
|
9
9
|
get floor(): THREE.Mesh;
|
|
10
10
|
set floor(floor: THREE.Mesh | undefined);
|
|
11
11
|
build(): void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
2
|
import { RealObject } from './real-object.js';
|
|
3
3
|
export declare class RealObjectService extends RealObject<THREE.Mesh> {
|
|
4
|
-
protected getObject3dInstance(): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>;
|
|
4
|
+
protected getObject3dInstance(): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>;
|
|
5
5
|
build(): void;
|
|
6
6
|
updateAlpha(): void;
|
|
7
7
|
updateHidden(): void;
|
|
@@ -9,6 +9,6 @@ export declare class RealObjectService extends RealObject<THREE.Mesh> {
|
|
|
9
9
|
updateFillStyle(): void;
|
|
10
10
|
updateStrokeStyle(): void;
|
|
11
11
|
updateText(): void;
|
|
12
|
-
clear(): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>;
|
|
12
|
+
clear(): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>;
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=real-object-service.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
2
|
import type Component from '../components/component.js';
|
|
3
|
-
import type { IRealObject } from '../interfaces/real-object.js';
|
|
3
|
+
import type { IRealObject, TopOutline } from '../interfaces/real-object.js';
|
|
4
4
|
import type { Properties } from '../interfaces/types.js';
|
|
5
5
|
import { ThreeDimensionalContainer } from './three-dimensional-container.js';
|
|
6
6
|
import type { Placement } from '../placement/index.js';
|
|
@@ -12,7 +12,7 @@ export declare abstract class RealObject<T extends THREE.Object3D = THREE.Object
|
|
|
12
12
|
private _lastText?;
|
|
13
13
|
object3d: T;
|
|
14
14
|
private _onchangeWrapper;
|
|
15
|
-
static buildFillStyleTexture(component: Component, fillStyleOverride?: unknown, options?: import('./texture/fillstyle-texture.js').TextureUVOptions): THREE.Texture<unknown> | undefined;
|
|
15
|
+
static buildFillStyleTexture(component: Component, fillStyleOverride?: unknown, options?: import('./texture/fillstyle-texture.js').TextureUVOptions): THREE.Texture<unknown, THREE.TextureEventMap> | undefined;
|
|
16
16
|
constructor(component: Component | any);
|
|
17
17
|
update(): void;
|
|
18
18
|
/**
|
|
@@ -270,6 +270,43 @@ export declare abstract class RealObject<T extends THREE.Object3D = THREE.Object
|
|
|
270
270
|
get effectiveDepth(): number;
|
|
271
271
|
updatePosition(): void;
|
|
272
272
|
updateRotate(): void;
|
|
273
|
+
/**
|
|
274
|
+
* 치수 배율 — geometry 의 크기를 컴포넌트 치수로 만드는 인수.
|
|
275
|
+
*
|
|
276
|
+
* ## 왜 따로 두나
|
|
277
|
+
*
|
|
278
|
+
* `object3d.scale` 은 임자가 셋이었다 — `updateTransform()`(state.scale),
|
|
279
|
+
* `syncAnimationDelta()`(애니메이션), 그리고 치수. 셋이 같은 자리에 쓰니 마지막에
|
|
280
|
+
* 쓴 것이 이겼다. 특히 치수를 쓰면 `state.scale` 이 조용히 지워졌다.
|
|
281
|
+
*
|
|
282
|
+
* 이제 치수는 여기 있고, 세 자리 모두 **곱해서** 반영한다. 임자가 갈렸으므로 서로
|
|
283
|
+
* 덮지 않는다.
|
|
284
|
+
*
|
|
285
|
+
* ## 무엇이 열리나
|
|
286
|
+
*
|
|
287
|
+
* 치수를 geometry 에 굽지 않아도 되므로, **단위 크기 geometry 를 여러 인스턴스가
|
|
288
|
+
* 공유**할 수 있다(`GeometryBank`). 굽는 방식에서는 크기가 다르면 무조건 다른
|
|
289
|
+
* geometry 였다.
|
|
290
|
+
*
|
|
291
|
+
* 기본은 (1,1,1) — geometry 에 치수가 이미 들어 있다는 뜻이다.
|
|
292
|
+
*/
|
|
293
|
+
get dimensionScale(): {
|
|
294
|
+
x: number;
|
|
295
|
+
y: number;
|
|
296
|
+
z: number;
|
|
297
|
+
};
|
|
298
|
+
protected _dimensionScale: {
|
|
299
|
+
x: number;
|
|
300
|
+
y: number;
|
|
301
|
+
z: number;
|
|
302
|
+
};
|
|
303
|
+
/**
|
|
304
|
+
* 치수 배율을 정하고 transform 에 반영한다. `updateDimension()` 이 부른다 —
|
|
305
|
+
* `object3d.scale` 을 직접 쓰는 대신 이것을 쓴다.
|
|
306
|
+
*/
|
|
307
|
+
protected setDimensionScale(x: number, y: number, z: number): void;
|
|
308
|
+
/** state.scale · 애니메이션 · 치수를 곱해 최종 배율을 낸다. */
|
|
309
|
+
protected applyScale(sx: number, sy: number, sz: number): void;
|
|
273
310
|
updateScale(): void;
|
|
274
311
|
/**
|
|
275
312
|
* 활성 애니메이션의 delta 값을 Object3D에 반영한다.
|
|
@@ -306,6 +343,13 @@ export declare abstract class RealObject<T extends THREE.Object3D = THREE.Object
|
|
|
306
343
|
updateStrokeStyle(): void;
|
|
307
344
|
updateFillStyle(): void;
|
|
308
345
|
updateText(): void;
|
|
346
|
+
/**
|
|
347
|
+
* 톱뷰 윤곽 — 기본은 `null`(계산 못 함)이다. 형상을 아는 서브클래스가 채운다.
|
|
348
|
+
*
|
|
349
|
+
* 경계상자로 갈음하지 않는다. 원기둥을 사각형으로 돌려주면 2D 표현이 3D 와 다른
|
|
350
|
+
* 물건이 되고, 부르는 쪽은 그것이 근사인지 실제인지 알 수 없다.
|
|
351
|
+
*/
|
|
352
|
+
topOutline(): TopOutline | null;
|
|
309
353
|
/**
|
|
310
354
|
* Raycast opt-out for atmospheric / decoration / environment components.
|
|
311
355
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"real-object.d.ts","sourceRoot":"","sources":["../../src/threed/real-object.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AAGvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"real-object.d.ts","sourceRoot":"","sources":["../../src/threed/real-object.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AAGvD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAS,MAAM,wBAAwB,CAAA;AAK/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AAI5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAStD,8BAAsB,UAAU,CAAC,CAAC,SAAS,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAE,YAAW,WAAW;IAChG,SAAS,CAAC,UAAU,EAAE,SAAS,CAAA;IAC/B,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAQ;IACnC,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC7B,SAAS,CAAC,iBAAiB,UAAQ;IACnC,OAAO,CAAC,SAAS,CAAC,CAAQ;IAEnB,QAAQ,EAAE,CAAC,CAAA;IAUlB,OAAO,CAAC,gBAAgB,CAIvB;IAED,MAAM,CAAC,qBAAqB,CAC1B,SAAS,EAAE,SAAS,EACpB,iBAAiB,CAAC,EAAE,OAAO,EAC3B,OAAO,CAAC,EAAE,OAAO,gCAAgC,EAAE,gBAAgB;gBASzD,SAAS,EAAE,SAAS,GAAG,GAAG;IAOtC,MAAM;IAeN;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAQvB;;;;OAIG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,SAAS,CAAC,mBAAmB,IAAI,CAAC;IAIlC,KAAK;IAQL,gBAAgB;IAOhB;;;;;OAKG;IACH,SAAS,CAAC,aAAa,CACrB,IAAI,GAAE,OAAc,EACpB,OAAO,GAAE,OAAe,GACvB;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE;IAItC,OAAO,CAAC,YAAY;IAiBpB,4DAA4D;IAC5D,IAAI,kBAAkB,IAAI,OAAO,CAEhC;IAED,oCAAoC;IACpC,IAAI,iBAAiB,IAAI,MAAM,EAAE,GAAG,IAAI,CAEvC;IAED,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,IAAI,cAAc,IAAI,yBAAyB,GAAG,SAAS,CAS1D;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,EAK3B;IAED,OAAO;IAMP,KAAK;IAsBL,iBAAiB,UAAQ;IAEzB;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB,CAAC,CAAW;IAEvC;;;;;;;;OAQG;IACH,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED;;;OAGG;IACH,qBAAqB,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI;IAIzC,4DAA4D;IAC5D,uBAAuB,IAAI,IAAI;IAI/B;;;;;;;;;;;;;OAaG;IACH,eAAe,IAAI,IAAI;IA0BvB;;OAEG;IACH,eAAe;IAwBf,IAAI,QAAQ;;;;MAOX;IAED,IAAI,QAAQ;;;;MAQX;IAED,IAAI,KAAK;;;;MAUR;IAED,IAAI,EAAE,WAML;IAED,IAAI,EAAE,WAML;IAED,IAAI,EAAE,WAkBL;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAIjD;;;;;;;;;;OAUG;IACH,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAarC;;;;;;;;;;;;;;;;OAgBG;IACH,IAAI,aAAa,IAAI,MAAM,CAU1B;IAED;;;;;;;;;;;OAWG;IACH,IAAI,gBAAgB,IAAI,MAAM,CAQ7B;IAED;;;;;;OAMG;IACH,SAAS,KAAK,cAAc,IAAI,OAAO,GAAG,OAAO,GAAG,UAAU,CAI7D;IAED;;;;OAIG;IACH,IAAI,aAAa,IAAI,OAAO,GAAG,OAAO,GAAG,UAAU,CAElD;IAED,OAAO,CAAC,aAAa,CAAC,CAAa;IAEnC;;;;;;;;;;OAUG;IACH,IAAI,YAAY,IAAI,KAAK,CAAC,KAAK,CAO9B;IAED,IAAI,MAAM;;;;MAWT;IAED,eAAe;IAIf,iBAAiB;IAIjB,gBAAgB,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAEnE,IAAI,SAAS;eAFe,MAAM;gBAAU,MAAM;eAAS,MAAM;MAWhE;IAED;;;;;;;;;;;;;;;OAeG;IACH,IAAI,cAAc,IAAI,MAAM,CAU3B;IAGD,cAAc;IAKd,YAAY;IAKZ;;;;;;;;;;;;;;;;;;;OAmBG;IACH,IAAI,cAAc,IAAI;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAExD;IAED,SAAS,CAAC,eAAe,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAuB;IAErF;;;OAGG;IACH,SAAS,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAMlE,8CAA8C;IAC9C,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAS9D,WAAW;IAKX;;;;OAIG;IACH,kBAAkB;IAyClB,eAAe;IAKf;;;;OAIG;IACH,WAAW;IAIX;;;OAGG;IACH,SAAS,CAAC,eAAe,IAAI,OAAO;IAIpC;;;;;;;;;OASG;IACH,oBAAoB,IAAI,IAAI;IAe5B,kDAAkD;IAClD,aAAa,IAAI,IAAI;IAIrB,YAAY;IAYZ,iBAAiB;IACjB,eAAe;IACf,UAAU;IAEV;;;;;OAKG;IACH,UAAU,IAAI,UAAU,GAAG,IAAI;IAI/B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,SAAS,CAAC,mBAAmB;IA8B7B;;;OAGG;IACH;;;;;;;;;;;OAWG;IACH,SAAS,KAAK,cAAc,IAAI,MAAM,CAQrC;IAED;;;OAGG;IACH,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAED;;;OAGG;IACH,gBAAgB;IAiChB;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC;;;;OAIG;IACH,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMrD,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU;CAoF/C"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 곡면의 분할 수 — 로우폴리 표현과 geometry 공유의 공통 손잡이.
|
|
3
|
+
*
|
|
4
|
+
* 분할 수가 코드에 박혀 있으면 두 가지를 못 한다.
|
|
5
|
+
*
|
|
6
|
+
* 1. 로우폴리 — 25분할 원기둥은 로우폴리가 아니다. 8·12·16 을 고를 수 있어야 하고,
|
|
7
|
+
* 낮은 분할은 `material3d.flatShading` 과 함께 써야 「덜 그린 원기둥」이 아니라
|
|
8
|
+
* 「의도한 각기둥」으로 보인다.
|
|
9
|
+
* 2. geometry 공유 — GeometryBank 는 분할 수를 캐시 키에 넣는다. 저작 쪽이 프리셋
|
|
10
|
+
* 셋 중에서만 고르면 키 종류가 셋으로 묶인다. 자유값이면 묶이지 않는다.
|
|
11
|
+
*
|
|
12
|
+
* **미감을 위한 제약이 그대로 공유의 근거다** — 프리셋을 두는 이유가 둘 다이다.
|
|
13
|
+
*/
|
|
14
|
+
/** 저작에서 고를 수 있는 분할 수. 이 셋으로 제한하면 geometry 키가 셋으로 묶인다. */
|
|
15
|
+
export declare const SEGMENT_PRESETS: readonly number[];
|
|
16
|
+
/**
|
|
17
|
+
* `segments` 를 주지 않은 기존 컴포넌트의 분할 수.
|
|
18
|
+
*
|
|
19
|
+
* 프리셋(8·12·16)보다 크다 — 일부러 그렇게 두었다. 이미 저장된 보드의 원기둥·구가
|
|
20
|
+
* 라이브러리 판올림만으로 각지게 변하면 안 된다. 저작한 Figure 는 `segments` 를
|
|
21
|
+
* 명시하므로 이 기본값을 타지 않는다.
|
|
22
|
+
*/
|
|
23
|
+
export declare const SEGMENT_DEFAULTS: {
|
|
24
|
+
readonly cylinder: 25;
|
|
25
|
+
readonly sphere: 32;
|
|
26
|
+
};
|
|
27
|
+
/** 입체가 되는 최소 분할 수. 2 이하는 면이 생기지 않는다. */
|
|
28
|
+
export declare const MIN_SEGMENTS = 3;
|
|
29
|
+
/**
|
|
30
|
+
* 최대 분할 수. 이보다 큰 값은 화면에서 구분되지 않으면서 삼각형만 늘린다.
|
|
31
|
+
* 저작에서 실수로 큰 값이 들어오는 것을 막는 상한이며 계약의 일부다.
|
|
32
|
+
*/
|
|
33
|
+
export declare const MAX_SEGMENTS = 128;
|
|
34
|
+
/**
|
|
35
|
+
* `state.segments` 를 실제 분할 수로 읽는다.
|
|
36
|
+
*
|
|
37
|
+
* - 값이 없거나 수가 아니면 `fallback`
|
|
38
|
+
* - 범위를 벗어나면 [MIN_SEGMENTS, MAX_SEGMENTS] 로 맞춘다
|
|
39
|
+
* - 소수는 버린다
|
|
40
|
+
*/
|
|
41
|
+
export declare function resolveSegments(value: unknown, fallback: number): number;
|
|
42
|
+
/**
|
|
43
|
+
* 구의 높이 분할 수 — 둘레 분할의 절반이 기본이다(32 → 16, 지금 동작과 같다).
|
|
44
|
+
* `state.heightSegments` 로 따로 줄 수 있다.
|
|
45
|
+
*/
|
|
46
|
+
export declare function resolveHeightSegments(value: unknown, segments: number): number;
|
|
47
|
+
/** 프리셋에 든 값인가 — 저작 화면의 검사와 진단에 쓴다. */
|
|
48
|
+
export declare function isSegmentPreset(value: number): boolean;
|
|
49
|
+
//# sourceMappingURL=segments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../../src/threed/segments.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,yDAAyD;AACzD,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAAgB,CAAA;AAE7D;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;;;CAGnB,CAAA;AAEV,wCAAwC;AACxC,eAAO,MAAM,YAAY,IAAI,CAAA;AAE7B;;;GAGG;AACH,eAAO,MAAM,YAAY,MAAM,CAAA;AAE/B;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGxE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAK9E;AAED,sCAAsC;AACtC,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD"}
|
|
@@ -75,11 +75,15 @@ export declare class ThreeCapability {
|
|
|
75
75
|
private _onItemRemove?;
|
|
76
76
|
private _onComponentRemove?;
|
|
77
77
|
private _onSelectionChanged?;
|
|
78
|
+
/** 조각이 갈리는 컴포넌트가 고른 조각을 바꿨을 때. 선택 자체는 안 바뀐다. */
|
|
79
|
+
private _onPartChanged?;
|
|
78
80
|
private _onAddStart?;
|
|
79
81
|
private _onAddStop?;
|
|
80
82
|
private _initialized;
|
|
81
83
|
private _decoratorOutlines;
|
|
82
84
|
private _selectionOutlineObjects;
|
|
85
|
+
/** 좌표 바탕. 씬이 다시 설 때마다 새로 만든다. */
|
|
86
|
+
private _coordinateGround?;
|
|
83
87
|
private _highlightedMarkerIndex;
|
|
84
88
|
private _arrows;
|
|
85
89
|
private _resizeDebouncer?;
|
|
@@ -175,6 +179,13 @@ export declare class ThreeCapability {
|
|
|
175
179
|
/**
|
|
176
180
|
* WebGL 씬을 렌더링한다.
|
|
177
181
|
*/
|
|
182
|
+
/**
|
|
183
|
+
* 지금 반사할 환경(IBL)이 걸려 있나.
|
|
184
|
+
*
|
|
185
|
+
* 진단이 묻는다 — `metalness` 가 높은 재질은 이것이 없으면 고른 색과 무관하게 어둡게
|
|
186
|
+
* 나온다. PBR 에서 완전한 금속은 확산 성분이 없어 보이는 것이 전부 반사이기 때문이다.
|
|
187
|
+
*/
|
|
188
|
+
get hasEnvironment(): boolean;
|
|
178
189
|
renderThreeD(): void;
|
|
179
190
|
/**
|
|
180
191
|
* 카메라 뷰 프리셋을 전환한다.
|
|
@@ -195,6 +206,13 @@ export declare class ThreeCapability {
|
|
|
195
206
|
/**
|
|
196
207
|
* 모든 리소스를 정리한다.
|
|
197
208
|
*/
|
|
209
|
+
/**
|
|
210
|
+
* 좌표 바탕을 세운다. `state.grid` 가 참일 때만.
|
|
211
|
+
*
|
|
212
|
+
* 눈금 한 칸을 안 주면 판 크기에서 뽑는다 — 고정 간격이면 작은 판에서는 안 보이고
|
|
213
|
+
* 큰 판에서는 뭉갠다.
|
|
214
|
+
*/
|
|
215
|
+
private _setupCoordinateGround;
|
|
198
216
|
destroy(): void;
|
|
199
217
|
/**
|
|
200
218
|
* 드래그 상태를 강제 정리한다.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"three-capability.d.ts","sourceRoot":"","sources":["../../src/threed/three-capability.ts"],"names":[],"mappings":"AAIA,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAOlD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"three-capability.d.ts","sourceRoot":"","sources":["../../src/threed/three-capability.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,11 @@ export declare class ThreeContainer extends Container implements ThreeDimensiona
|
|
|
16
16
|
protected get lightManager(): LightManager;
|
|
17
17
|
protected get controlsManager(): ControlsManager;
|
|
18
18
|
protected get eventManager(): EventManager3D;
|
|
19
|
+
/**
|
|
20
|
+
* 반사할 환경(IBL)이 걸려 있나. 진단이 묻는 공개 질문이다 —
|
|
21
|
+
* 매니저를 파고들지 않고도 「왜 금속이 검은가」를 판정할 수 있게 둔다.
|
|
22
|
+
*/
|
|
23
|
+
get hasEnvironment(): boolean;
|
|
19
24
|
containable(component: Component): boolean;
|
|
20
25
|
is3dContainer(): boolean;
|
|
21
26
|
protected getLightingConfig(): LightingConfig;
|
|
@@ -24,10 +29,10 @@ export declare class ThreeContainer extends Container implements ThreeDimensiona
|
|
|
24
29
|
destroy_scene3d(): void;
|
|
25
30
|
stop(): void;
|
|
26
31
|
resize(): void;
|
|
27
|
-
get scene3d(): THREE.Scene | undefined;
|
|
32
|
+
get scene3d(): THREE.Scene<THREE.Object3DEventMap> | undefined;
|
|
28
33
|
get renderer3d(): THREE.WebGLRenderer | undefined;
|
|
29
|
-
get mixer(): THREE.AnimationMixer | undefined;
|
|
30
|
-
get css3DScene(): THREE.Scene
|
|
34
|
+
get mixer(): THREE.AnimationMixer<THREE.AnimationMixerEventMap> | undefined;
|
|
35
|
+
get css3DScene(): THREE.Scene<THREE.Object3DEventMap>;
|
|
31
36
|
get css3DRenderer(): import("three/examples/jsm/renderers/CSS3DRenderer.js").CSS3DRenderer;
|
|
32
37
|
render_threed(): void;
|
|
33
38
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"three-container.d.ts","sourceRoot":"","sources":["../../src/threed/three-container.ts"],"names":[],"mappings":"AAIA,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAClD,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAGlD,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACzE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AA2BtI,qBACa,cAAe,SAAQ,SAAU,YAAW,yBAAyB;IAChF,SAAS,CAAC,WAAW,kBAAwB;IAE7C,qFAAqF;IACrF,SAAS,KAAK,YAAY,IAAI,YAAY,CAA4C;IACtF,SAAS,KAAK,aAAa,IAAI,aAAa,CAA6C;IACzF,SAAS,KAAK,eAAe,IAAI,eAAe,CAA+C;IAC/F,SAAS,KAAK,YAAY,IAAI,YAAY,CAA4C;IACtF,SAAS,KAAK,eAAe,IAAI,eAAe,CAA+C;IAC/F,SAAS,KAAK,YAAY,IAAI,cAAc,CAA4C;IAExF,WAAW,CAAC,SAAS,EAAE,SAAS;IAIhC,aAAa;IAIb,SAAS,CAAC,iBAAiB,IAAI,cAAc;IAO7C,SAAS,CAAC,sBAAsB,IAAI,MAAM,GAAG,SAAS;IAItD,YAAY;IAmBZ,eAAe;IAKf,IAAI;IAEJ,MAAM;IAMN,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"three-container.d.ts","sourceRoot":"","sources":["../../src/threed/three-container.ts"],"names":[],"mappings":"AAIA,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAClD,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAGlD,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACzE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AA2BtI,qBACa,cAAe,SAAQ,SAAU,YAAW,yBAAyB;IAChF,SAAS,CAAC,WAAW,kBAAwB;IAE7C,qFAAqF;IACrF,SAAS,KAAK,YAAY,IAAI,YAAY,CAA4C;IACtF,SAAS,KAAK,aAAa,IAAI,aAAa,CAA6C;IACzF,SAAS,KAAK,eAAe,IAAI,eAAe,CAA+C;IAC/F,SAAS,KAAK,YAAY,IAAI,YAAY,CAA4C;IACtF,SAAS,KAAK,eAAe,IAAI,eAAe,CAA+C;IAC/F,SAAS,KAAK,YAAY,IAAI,cAAc,CAA4C;IAExF;;;OAGG;IACH,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,WAAW,CAAC,SAAS,EAAE,SAAS;IAIhC,aAAa;IAIb,SAAS,CAAC,iBAAiB,IAAI,cAAc;IAO7C,SAAS,CAAC,sBAAsB,IAAI,MAAM,GAAG,SAAS;IAItD,YAAY;IAmBZ,eAAe;IAKf,IAAI;IAEJ,MAAM;IAMN,IAAI,OAAO,oDAKV;IAED,IAAI,UAAU,oCAEb;IAED,IAAI,KAAK,mEAER;IAED,IAAI,UAAU,wCAEb;IAED,IAAI,aAAa,0EAEhB;IAED,aAAa;IAIb;;;OAGG;IACH,OAAO,KAAK,eAAe,GAE1B;IAID,MAAM,CAAC,GAAG,EAAE,wBAAwB;IAiBpC,UAAU,CAAC,GAAG,EAAE,wBAAwB;IAoCxC,OAAO;IAKP,IAAI,MAAM,IAAI,GAAG,CAEhB;IAED,IAAI,MAAM,IAAI,eAAe,CAE5B;IAED,kBAAkB,IAAI,KAAK,CAAC,QAAQ,GAAG,SAAS;IAIhD,mBAAmB;IAMnB,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU;IAS9C,WAAW,CAAC,CAAC,EAAE,UAAU;IAIzB,SAAS,CAAC,CAAC,EAAE,UAAU;IAIvB,WAAW,CAAC,CAAC,EAAE,UAAU;IAIzB,YAAY,CAAC,CAAC,EAAE,UAAU;IAI1B,OAAO,CAAC,CAAC,EAAE,UAAU;IAMrB,UAAU,CAAC,CAAC,EAAE,UAAU;IAMxB,WAAW,CAAC,CAAC,EAAE,SAAS;IAIxB,UAAU,CAAC,CAAC,EAAE,SAAS;IAMvB,SAAS,CAAC,CAAC,EAAE,SAAS;IAMtB,YAAY,CAAC,CAAC,EAAE,UAAU;IAI1B,KAAK,CAAC,CAAC,EAAE,UAAU;IAMnB,UAAU,CAAC,CAAC,EAAE,UAAU;IAIxB,SAAS,CAAC,CAAC,EAAE,aAAa;IAI1B,OAAO,CAAC,CAAC,EAAE,UAAU;IAMrB,WAAW;CAIZ"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { TopOutline } from '../interfaces/real-object.js';
|
|
2
|
+
/**
|
|
3
|
+
* 톱뷰 윤곽을 만드는 순수 함수들.
|
|
4
|
+
*
|
|
5
|
+
* 저작한 Figure 는 3D 로만 만든다. 2D 표현은 따로 그리지 않고 **3D 형상에서 위에서
|
|
6
|
+
* 내려다본 윤곽을 계산한다.** 그 계산의 밑감이 여기 있다.
|
|
7
|
+
*
|
|
8
|
+
* 좌표 규약은 `TopOutline` 에 적혀 있다 — 원점은 컴포넌트 중심, x 는 오른쪽, y 는
|
|
9
|
+
* 아래. 2D 캔버스와 같은 방향이므로 계산 결과를 변환 없이 `ctx` 에 넘길 수 있다.
|
|
10
|
+
*/
|
|
11
|
+
/** 중심 원점 사각형. */
|
|
12
|
+
export declare function rectOutline(width: number, height: number): TopOutline;
|
|
13
|
+
/**
|
|
14
|
+
* 중심 원점 타원 — 반지름 `rx`·`ry`, `segments` 등분.
|
|
15
|
+
*
|
|
16
|
+
* **분할 수를 그대로 쓴다.** 3D 원기둥이 8분할이면 톱뷰도 팔각형이어야 한다. 톱뷰만
|
|
17
|
+
* 매끄러운 원으로 그리면 2D 와 3D 가 다른 물건으로 보인다.
|
|
18
|
+
*/
|
|
19
|
+
export declare function ellipseOutline(rx: number, ry: number, segments: number): TopOutline;
|
|
20
|
+
/**
|
|
21
|
+
* [0,w]×[0,h] 좌표의 점들을 **자기 경계상자 중심** 기준으로 옮긴다.
|
|
22
|
+
*
|
|
23
|
+
* 압출 계열의 `shape` 는 좌상단 원점 좌표를 내고, `createGeometry()` 는
|
|
24
|
+
* `geometry.center()` 로 mesh 를 중심에 맞춘다. 윤곽도 같은 기준이어야 2D 와 3D 가
|
|
25
|
+
* 겹친다.
|
|
26
|
+
*
|
|
27
|
+
* 닫는 점(첫 점과 같은 마지막 점)이 있으면 뺀다 — 계약은 「첫 점과 끝 점을 이어 닫힌
|
|
28
|
+
* 것으로 읽는다」이므로 되풀린 점은 군더더기다.
|
|
29
|
+
*/
|
|
30
|
+
export declare function centerOnBBox(points: readonly {
|
|
31
|
+
x: number;
|
|
32
|
+
y: number;
|
|
33
|
+
}[]): {
|
|
34
|
+
x: number;
|
|
35
|
+
y: number;
|
|
36
|
+
}[];
|
|
37
|
+
//# sourceMappingURL=top-outline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"top-outline.d.ts","sourceRoot":"","sources":["../../src/threed/top-outline.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAE9D;;;;;;;;GAQG;AAEH,iBAAiB;AACjB,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAWrE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAQnF;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,CA0BpG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispose.d.ts","sourceRoot":"","sources":["../../../src/threed/utils/dispose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAiC9B,wBAAgB,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"dispose.d.ts","sourceRoot":"","sources":["../../../src/threed/utils/dispose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAiC9B,wBAAgB,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,QAwBlD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transition-effect.d.ts","sourceRoot":"","sources":["../../src/transition/transition-effect.ts"],"names":[],"mappings":"AAgBA,UAAU,UAAU;IAClB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,UAAU,OAAO;IACf,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,GAAG,CAAA;IACT,SAAS,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/C,OAAO,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7C;;;;OAIG;IACH,aAAa,CAAC,EAAE,GAAG,CAAA;CACpB;AAED,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,OAAO,CAAC,MAAM,CAAgC;IAC9C;;;;;;OAMG;IACH,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,IAAI,CAAK;IAGjB,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,IAAI,CAAwC;gBAExC,IAAI,EAAE,GAAG;IAMrB,aAAa,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO;IAItC;;;;OAIG;IACH,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAcrD,QAAQ,CAAC,SAAS,EAAE,GAAG,GAAG,aAAa,GAAG,IAAI;IAI9C,KAAK,CACH,SAAS,EAAE,GAAG,EACd,OAAO,EAAE;QACP,SAAS,CAAC,EAAE,UAAU,CAAA;QACtB,OAAO,CAAC,EAAE,UAAU,CAAA;QACpB,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb;;;;WAIG;QACH,cAAc,CAAC,EAAE,OAAO,CAAA;KACzB,GACA,IAAI;IA+DP,MAAM,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI;IAK5B;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,GAAG,IAAI;IAgEtD;;OAEG;IACH,SAAS,IAAI,IAAI;IAQjB;;;;;;;OAOG;IACH,OAAO,IAAI,IAAI;IAsBf;;OAEG;IACH,MAAM,IAAI,IAAI;IASd,OAAO,IAAI,IAAI;IAYf,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,IAAI;IAoEZ,OAAO,CAAC,QAAQ;IAkBhB,OAAO,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"transition-effect.d.ts","sourceRoot":"","sources":["../../src/transition/transition-effect.ts"],"names":[],"mappings":"AAgBA,UAAU,UAAU;IAClB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,UAAU,OAAO;IACf,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,GAAG,CAAA;IACT,SAAS,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/C,OAAO,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7C;;;;OAIG;IACH,aAAa,CAAC,EAAE,GAAG,CAAA;CACpB;AAED,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,OAAO,CAAC,MAAM,CAAgC;IAC9C;;;;;;OAMG;IACH,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,IAAI,CAAK;IAGjB,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,IAAI,CAAwC;gBAExC,IAAI,EAAE,GAAG;IAMrB,aAAa,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO;IAItC;;;;OAIG;IACH,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAcrD,QAAQ,CAAC,SAAS,EAAE,GAAG,GAAG,aAAa,GAAG,IAAI;IAI9C,KAAK,CACH,SAAS,EAAE,GAAG,EACd,OAAO,EAAE;QACP,SAAS,CAAC,EAAE,UAAU,CAAA;QACtB,OAAO,CAAC,EAAE,UAAU,CAAA;QACpB,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb;;;;WAIG;QACH,cAAc,CAAC,EAAE,OAAO,CAAA;KACzB,GACA,IAAI;IA+DP,MAAM,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI;IAK5B;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,GAAG,IAAI;IAgEtD;;OAEG;IACH,SAAS,IAAI,IAAI;IAQjB;;;;;;;OAOG;IACH,OAAO,IAAI,IAAI;IAsBf;;OAEG;IACH,MAAM,IAAI,IAAI;IASd,OAAO,IAAI,IAAI;IAYf,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,IAAI;IAoEZ,OAAO,CAAC,QAAQ;IAkBhB,OAAO,CAAC,SAAS;CA4BlB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hatiolab/things-scene",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.1.1",
|
|
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",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"@rollup/plugin-typescript": "^12.0.0",
|
|
68
68
|
"@types/lodash-es": "^4.17.6",
|
|
69
69
|
"@types/node": "^22.0.0",
|
|
70
|
-
"@types/three": "^0.
|
|
70
|
+
"@types/three": "^0.185.4",
|
|
71
71
|
"@types/tinycolor2": "^1.4.3",
|
|
72
72
|
"canvas": "^3.1.0",
|
|
73
73
|
"chai": "^4.3.6",
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
"dompurify": "^3.3.1",
|
|
95
95
|
"jsonata": "^1.8.6",
|
|
96
96
|
"lodash-es": "^4.17.20",
|
|
97
|
-
"three": "^0.
|
|
97
|
+
"three": "^0.185.1",
|
|
98
98
|
"tinycolor2": "^1.6.0"
|
|
99
99
|
}
|
|
100
100
|
}
|