@hatiolab/things-scene 10.1.51 → 10.1.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-types/figure/figure-capability.d.ts +0 -33
- package/dist-types/figure/figure-capability.d.ts.map +1 -1
- package/dist-types/figure/figure-component.d.ts +5 -0
- package/dist-types/figure/figure-component.d.ts.map +1 -0
- package/dist-types/figure/figure-instance.d.ts +7 -54
- package/dist-types/figure/figure-instance.d.ts.map +1 -1
- package/dist-types/figure/figure-palette.d.ts +3 -3
- package/dist-types/figure/figure-palette.d.ts.map +1 -1
- package/dist-types/figure/figure-shape.d.ts +1 -57
- package/dist-types/figure/figure-shape.d.ts.map +1 -1
- package/dist-types/figure/index.d.ts +4 -8
- package/dist-types/figure/index.d.ts.map +1 -1
- package/dist-types/figure/v3/figure-v3-geometry.d.ts.map +1 -1
- package/dist-types/figure/v3/figure-v3-part-component.d.ts.map +1 -1
- package/dist-types/figure/v3/figure-v3-real-object.d.ts +7 -2
- package/dist-types/figure/v3/figure-v3-real-object.d.ts.map +1 -1
- package/dist-types/figure/v3/figure-v3-registry.d.ts.map +1 -1
- package/package.json +2 -2
- package/things-scene-min.js +7 -7
- package/things-scene-min.js.map +1 -1
- package/things-scene.mjs +7 -7
- package/things-scene.mjs.map +1 -1
- package/dist-types/figure/figure-blueprint.d.ts +0 -56
- package/dist-types/figure/figure-blueprint.d.ts.map +0 -1
- package/dist-types/figure/figure-clip.d.ts +0 -87
- package/dist-types/figure/figure-clip.d.ts.map +0 -1
- package/dist-types/figure/figure-part-component.d.ts +0 -454
- package/dist-types/figure/figure-part-component.d.ts.map +0 -1
- package/dist-types/figure/figure-real-object.d.ts +0 -413
- package/dist-types/figure/figure-real-object.d.ts.map +0 -1
- package/dist-types/figure/figure-registry.d.ts +0 -73
- package/dist-types/figure/figure-registry.d.ts.map +0 -1
- package/dist-types/figure/figure-sizing.d.ts +0 -3
- package/dist-types/figure/figure-sizing.d.ts.map +0 -1
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 청사진을 **읽는 쪽**의 이름.
|
|
3
|
-
*
|
|
4
|
-
* 정본은 `@hatiolab/figure-model` 이다. **여기서는 그 형식을 다시 적지 않고 그대로
|
|
5
|
-
* 가져온다** — 이 파일이 하는 일은 그 이름을 이 패키지의 낱말(`Figure…`)로 다시
|
|
6
|
-
* 내보내는 것뿐이다.
|
|
7
|
-
*
|
|
8
|
-
* ## 한동안 손으로 베껴 적었다
|
|
9
|
-
*
|
|
10
|
-
* 「의존성을 만들지 않으려고」였는데, `import type` 은 런타임 의존을 만들지 않는다 —
|
|
11
|
-
* TypeScript 가 지운다. 그리고 두 벌은 어긋난 것을 **알려 주지 않는다.**
|
|
12
|
-
*
|
|
13
|
-
* 실제로 어긋나 있었다.
|
|
14
|
-
*
|
|
15
|
-
* SEGMENT_PRESETS things-scene [8, 12, 16] figure-model [8, 12, 16, 24, 32]
|
|
16
|
-
*
|
|
17
|
-
* `isSegmentPreset` 을 아무도 안 써서 조용했을 뿐이다. 저작 화면이 「이 값이 프리셋인가」를
|
|
18
|
-
* 묻는 순간 24 와 32 를 아니라고 답했을 것이다. `material.emissive` 를 더할 때도 양쪽에
|
|
19
|
-
* 손으로 넣었고, 표본 시험은 램프가 없어서 아무것도 못 잡았다.
|
|
20
|
-
*
|
|
21
|
-
* ## 좌표 규약
|
|
22
|
-
*
|
|
23
|
-
* figure-model 의 `PartTransform` 그대로다 — **3D 도구들이 쓰는 그대로** `x` 오른쪽,
|
|
24
|
-
* `y` 위, `z` 앞이고, `position` 은 부품 **중심**의 자리이며 기준은 `base` 상자의 중심
|
|
25
|
-
* (0,0,0) 이다.
|
|
26
|
-
*
|
|
27
|
-
* **컴포넌트 state 의 낱말과 다르다.** state 는 `width`·`height`·`depth` 이고 그쪽은
|
|
28
|
-
* `depth` 가 높이다. 환산은 `figure-real-object.ts` 의 `updateDimension` 한 곳에서만
|
|
29
|
-
* 한다 — 그 밖에서는 청사진의 축을 그대로 three 에 넘긴다(three 도 y 가 위다).
|
|
30
|
-
*/
|
|
31
|
-
import type { AnchorRule, AnimationChannel, AnimationClip, ChannelPath, BlueprintGroup, BlueprintLabel, BlueprintAnchor, BlueprintMember, BlueprintClip, BlueprintJoint, BlueprintParameter, JointChannel, PartChannel, EmissiveSpec, FigureBlueprint as Blueprint, MaterialSlot, PartAnchor, PartMaterial, PartShape, PartTransform, PrimitiveKind, SizingRule, Vec3 } from '@hatiolab/figure-model';
|
|
32
|
-
export type FigurePrimitiveKind = PrimitiveKind;
|
|
33
|
-
export type FigureMaterialSlot = MaterialSlot;
|
|
34
|
-
export type FigureSizingRule = SizingRule;
|
|
35
|
-
export type FigureAnchorRule = AnchorRule;
|
|
36
|
-
export type FigurePartAnchor = PartAnchor;
|
|
37
|
-
export type FigureAnimationChannel = AnimationChannel;
|
|
38
|
-
export type FigurePartChannel = PartChannel;
|
|
39
|
-
export type FigureJointChannel = JointChannel;
|
|
40
|
-
export type FigureBlueprintJoint = BlueprintJoint;
|
|
41
|
-
export type FigureAnimationClip = AnimationClip;
|
|
42
|
-
export type FigureChannelPath = ChannelPath;
|
|
43
|
-
export type FigureVec3 = Vec3;
|
|
44
|
-
export type FigurePartTransform = PartTransform;
|
|
45
|
-
export type FigureEmissiveSpec = EmissiveSpec;
|
|
46
|
-
export type FigurePartMaterial = PartMaterial;
|
|
47
|
-
export type FigurePartShape = PartShape;
|
|
48
|
-
export type FigureBlueprintMember = BlueprintMember;
|
|
49
|
-
export type FigureBlueprintAnchor = BlueprintAnchor;
|
|
50
|
-
export type FigureBlueprintGroup = BlueprintGroup;
|
|
51
|
-
export type FigureBlueprintClip = BlueprintClip;
|
|
52
|
-
export type FigureBlueprintParameter = BlueprintParameter;
|
|
53
|
-
export type FigureBlueprintLabel = BlueprintLabel;
|
|
54
|
-
export type FigureBlueprint = Blueprint;
|
|
55
|
-
export { blueprintProblems } from '@hatiolab/figure-model';
|
|
56
|
-
//# sourceMappingURL=figure-blueprint.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"figure-blueprint.d.ts","sourceRoot":"","sources":["../../src/figure/figure-blueprint.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,eAAe,IAAI,SAAS,EAC5B,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,SAAS,EACT,aAAa,EACb,aAAa,EACb,UAAU,EACV,IAAI,EACL,MAAM,wBAAwB,CAAA;AAM/B,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAAA;AAC/C,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAA;AAC7C,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAA;AACzC,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAA;AACzC,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAA;AACzC,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,CAAA;AACrD,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAA;AAC3C,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAA;AAC7C,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAA;AACjD,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAAA;AAC/C,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAA;AAC3C,MAAM,MAAM,UAAU,GAAG,IAAI,CAAA;AAC7B,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAAA;AAC/C,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAA;AAC7C,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAA;AAC7C,MAAM,MAAM,eAAe,GAAG,SAAS,CAAA;AACvC,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAA;AACnD,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAA;AACnD,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAA;AACjD,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAAA;AAC/C,MAAM,MAAM,wBAAwB,GAAG,kBAAkB,CAAA;AACzD,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAA;AACjD,MAAM,MAAM,eAAe,GAAG,SAAS,CAAA;AAOvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA"}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import type { FigureAnimationChannel, FigureJointChannel, FigurePartChannel, FigureVec3 } from './figure-blueprint.js';
|
|
2
|
-
/**
|
|
3
|
-
* 표집할 수 있는 것 — **채널 묶음이면 된다.**
|
|
4
|
-
*
|
|
5
|
-
* clip 과 파라미터의 자세는 이름과 구동 방식이 다르지만 곡선은 같은 모양이다(ADR-0051 의
|
|
6
|
-
* 「포즈 데이터는 glTF 꼴 한 벌」). 청사진의 clip 타입을 요구하면 파라미터가 이름 없는
|
|
7
|
-
* clip 을 지어내야 한다.
|
|
8
|
-
*/
|
|
9
|
-
export interface Sampleable {
|
|
10
|
-
channels?: readonly FigureAnimationChannel[];
|
|
11
|
-
}
|
|
12
|
-
/** 한 부품이 한 시각에 받는 것. 적히지 않은 경로는 없다. */
|
|
13
|
-
export interface PartPose {
|
|
14
|
-
translation?: FigureVec3;
|
|
15
|
-
rotation?: FigureVec3;
|
|
16
|
-
scale?: FigureVec3;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* clip 의 길이. **마지막 키의 시각이다.**
|
|
20
|
-
*
|
|
21
|
-
* 형식이 길이를 따로 안 적는 이유가 이것이다 — 적으면 키와 어긋날 수 있고, 어긋나면
|
|
22
|
-
* 어느 쪽이 맞는지 알 방법이 없다.
|
|
23
|
-
*/
|
|
24
|
-
export declare function durationOf(clip: Sampleable): number;
|
|
25
|
-
/**
|
|
26
|
-
* 한 채널을 한 시각에서 읽는다.
|
|
27
|
-
*
|
|
28
|
-
* 범위 밖은 **끝 값을 그대로 문다**(glTF 도 그렇게 규정한다). 되돌아가거나 0 이 되면
|
|
29
|
-
* `hold` 로 잡아 둔 문이 범위를 살짝 넘는 순간 닫혀 버린다.
|
|
30
|
-
*
|
|
31
|
-
* `step` 은 다음 키 **직전까지** 앞 값을 유지한다. 계단이 그런 것이고, 그렇지 않으면
|
|
32
|
-
* 마지막 구간만 보간한 것처럼 보인다.
|
|
33
|
-
*/
|
|
34
|
-
export declare function sampleChannel(channel: FigurePartChannel, at: number): FigureVec3;
|
|
35
|
-
/**
|
|
36
|
-
* clip 전체를 한 시각에서 읽는다. 부품 이름 → 그 부품이 받는 것.
|
|
37
|
-
*
|
|
38
|
-
* 한 부품에 같은 경로의 채널이 둘이면 **뒤에 적은 것이 이긴다.** 형식이 막지 않는 조합
|
|
39
|
-
* 이고, 여기서 섞으면 저작자가 적은 것과 다른 값이 나온다.
|
|
40
|
-
*/
|
|
41
|
-
export declare function poseAt(clip: Sampleable, at: number): Map<string, PartPose>;
|
|
42
|
-
/** A channel that moves a part property, as opposed to one that drives a joint (ADR-0066). */
|
|
43
|
-
export declare function isPartChannel(channel: FigureAnimationChannel): channel is FigurePartChannel;
|
|
44
|
-
/**
|
|
45
|
-
* A joint channel read at one position: the joint coordinate, degrees or millimetres.
|
|
46
|
-
*
|
|
47
|
-
* Same rules as `sampleChannel`: outside the keys the end value holds, and `step` keeps the earlier key
|
|
48
|
-
* until the next one.
|
|
49
|
-
*/
|
|
50
|
-
export declare function sampleJoint(channel: FigureJointChannel, at: number): number;
|
|
51
|
-
/**
|
|
52
|
-
* Every joint a clip drives, read at one position: joint name → coordinate.
|
|
53
|
-
*
|
|
54
|
-
* Two channels on one joint in the same clip: the later one wins, as with part channels.
|
|
55
|
-
*/
|
|
56
|
-
export declare function jointValuesAt(clip: Sampleable, at: number): Map<string, number>;
|
|
57
|
-
/**
|
|
58
|
-
* 도는 clip 을 지금 어느 시각에서 읽나. **시각이 흐른다.**
|
|
59
|
-
*
|
|
60
|
-
* 인스턴스가 준 배속은 `elapsed` 를 미는 쪽에 이미 들어가 있다. 여기서 하는 일은 길이로
|
|
61
|
-
* 나머지를 취해 되감는 것뿐이다.
|
|
62
|
-
*
|
|
63
|
-
* 값이 모는 자세는 여기 없다 — 그것은 `parameterTime` 이다(ADR-0051 ①).
|
|
64
|
-
*/
|
|
65
|
-
export declare function loopTime(duration: number, elapsed: number): number;
|
|
66
|
-
/**
|
|
67
|
-
* 파라미터의 0~1 을 곡선의 어느 자리로 읽나.
|
|
68
|
-
*
|
|
69
|
-
* Keys on a parameter curve sit on the 0..1 value span (ADR-0051), so the value itself is where to
|
|
70
|
-
* read. It is not stretched by the curve's length. Stretching it made the last key's time serve as both
|
|
71
|
-
* the end of the span and the transition time, and a figure could not declare several poses with an
|
|
72
|
-
* instant move. The transition time is `clip.duration`.
|
|
73
|
-
*
|
|
74
|
-
* Values outside the span are clamped. When the keys do not cover the span, `sampleChannel` holds the
|
|
75
|
-
* pose of the end key.
|
|
76
|
-
*/
|
|
77
|
-
export declare function parameterTime(at: number): number;
|
|
78
|
-
/**
|
|
79
|
-
* 한 프레임만큼 파라미터를 목표로 민다. **직선이다 — ease 는 없다.**
|
|
80
|
-
*
|
|
81
|
-
* 전 구간(0→1)이 `sweep` 초다. 값이 v₁ 에서 v₂ 로 바뀌면 `|v₂−v₁| × sweep` 동안 간다 —
|
|
82
|
-
* 그것이 곧 기계의 속도이고, 기계는 연출하지 않는다(ADR-0051 ②).
|
|
83
|
-
*
|
|
84
|
-
* `sweep` 이 0 이면 즉시다.
|
|
85
|
-
*/
|
|
86
|
-
export declare function advanceParameter(at: number, target: number, sweep: number, dt: number): number;
|
|
87
|
-
//# sourceMappingURL=figure-clip.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"figure-clip.d.ts","sourceRoot":"","sources":["../../src/figure/figure-clip.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,sBAAsB,EAEtB,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACX,MAAM,uBAAuB,CAAA;AAE9B;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAA;CAC7C;AAED,uCAAuC;AACvC,MAAM,WAAW,QAAQ;IACvB,WAAW,CAAC,EAAE,UAAU,CAAA;IACxB,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB,KAAK,CAAC,EAAE,UAAU,CAAA;CACnB;AAID;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAQnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,CA0BhF;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAkB1E;AAED,8FAA8F;AAC9F,wBAAgB,aAAa,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,IAAI,iBAAiB,CAE3F;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAiB3E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAO/E;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAGlE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAK9F"}
|
|
@@ -1,454 +0,0 @@
|
|
|
1
|
-
import * as THREE from 'three';
|
|
2
|
-
import Component from '../components/component.js';
|
|
3
|
-
import Shape from '../components/shape.js';
|
|
4
|
-
import type { SceneRenderContext } from '../interfaces/rendering.js';
|
|
5
|
-
import type { IRealObject } from '../interfaces/real-object.js';
|
|
6
|
-
import type { ComponentNature, Properties } from '../interfaces/types.js';
|
|
7
|
-
import { RealObject } from '../threed/real-object.js';
|
|
8
|
-
import { MATERIAL_PRESETS } from '../threed/material-3d.js';
|
|
9
|
-
import { type FigureAxis } from './figure-sizing.js';
|
|
10
|
-
import type { FigureSizingRule } from './figure-blueprint.js';
|
|
11
|
-
/** 이 컴포넌트가 3D 로 세울 수 있는 도형. `PRIMITIVE_KINDS` 와 같은 집합이다. */
|
|
12
|
-
export type FigurePartPrimitive = 'cube' | 'wall' | 'cylinder' | 'sphere' | 'rect' | 'polygon';
|
|
13
|
-
/** 부품 컴포넌트가 갖는, 씬 공통 상태 밖의 값들. */
|
|
14
|
-
export interface FigurePartState {
|
|
15
|
-
primitive?: FigurePartPrimitive;
|
|
16
|
-
segments?: number;
|
|
17
|
-
/** `rect` 의 모서리 굴림, `polygon` 의 단면 경로. */
|
|
18
|
-
round?: number;
|
|
19
|
-
path?: {
|
|
20
|
-
x: number;
|
|
21
|
-
y: number;
|
|
22
|
-
}[];
|
|
23
|
-
/**
|
|
24
|
-
* 속을 판다. 벽 두께가 0 보다 크면 그만큼 안으로 들어온 테가 생긴다.
|
|
25
|
-
*
|
|
26
|
-
* 트레이 · 토트 · 통 · 케이스가 이것이다. 없을 때는 바닥판에 벽 넷을 세워야 했고,
|
|
27
|
-
* 부품이 다섯인 것보다 네 귀퉁이에서 굴림이 어긋나는 것이 문제였다.
|
|
28
|
-
*/
|
|
29
|
-
hollow?: {
|
|
30
|
-
wall: number;
|
|
31
|
-
floor?: number;
|
|
32
|
-
};
|
|
33
|
-
/** 팔레트 토큰. 값이 아니라 이름을 둔다 — 테마를 바꾸면 따라온다. */
|
|
34
|
-
token?: string;
|
|
35
|
-
preset?: keyof typeof MATERIAL_PRESETS;
|
|
36
|
-
flatShading?: boolean;
|
|
37
|
-
transparent?: boolean;
|
|
38
|
-
/**
|
|
39
|
-
* 켜진 모습. 없으면 램프가 아니다.
|
|
40
|
-
*
|
|
41
|
-
* **저작 화면은 켜진 모습을 보여 준다** — 지금 만드는 것이 램프의 켜진 그림이기
|
|
42
|
-
* 때문이다. 꺼진 모습은 배포된 인스턴스가 고른다.
|
|
43
|
-
*/
|
|
44
|
-
emissive?: {
|
|
45
|
-
token?: string;
|
|
46
|
-
intensity: number;
|
|
47
|
-
on?: boolean;
|
|
48
|
-
};
|
|
49
|
-
/**
|
|
50
|
-
* 크기 반응. 저작 화면에서는 `repeat` 만 눈에 보인다.
|
|
51
|
-
*
|
|
52
|
-
* 나머지 셋은 인스턴스 배율이 1 일 때 하는 일이 없다. 저작 화면은 판이 곧 기준 상자라
|
|
53
|
-
* 늘 1 배다.
|
|
54
|
-
*/
|
|
55
|
-
sizing?: FigureSizingRule;
|
|
56
|
-
repeat?: {
|
|
57
|
-
axis: FigureAxis;
|
|
58
|
-
pitch: number;
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* 부품의 3D 표현.
|
|
63
|
-
*
|
|
64
|
-
* 치수를 형상에 굽지 않는다 — 단위 형상을 창고에서 꺼내 `dimensionScale` 로 키운다.
|
|
65
|
-
* 그래야 크기가 다른 부품끼리도 형상 하나를 나눠 쓴다. 단면을 미는 것(`rect` ·
|
|
66
|
-
* `polygon`)만 예외인데, 단위로 정규화하면 모서리 굴림 비율이 망가지기 때문이다.
|
|
67
|
-
*/
|
|
68
|
-
export declare class FigurePartRealObject extends RealObject {
|
|
69
|
-
/** `repeat` 로 펼친 복제본들. 첫째가 저작한 것이다. */
|
|
70
|
-
private _copies;
|
|
71
|
-
build(): void;
|
|
72
|
-
clear(): THREE.Object3D<THREE.Object3DEventMap>;
|
|
73
|
-
/**
|
|
74
|
-
* `repeat` 를 **저작 화면에서도 펼친다.**
|
|
75
|
-
*
|
|
76
|
-
* 저작자는 단위 하나를 그리고 런타임이 기준 상자를 채운다. 그런데 저작 화면이 하나만
|
|
77
|
-
* 보여 주면, 그린 것과 도면에 놓인 것이 다른 물건이 된다. 롤러 하나를 그렸는데 도면에서
|
|
78
|
-
* 여섯이 나오면 무엇을 그린 것인지 알 수 없다.
|
|
79
|
-
*
|
|
80
|
-
* 셈은 런타임과 **같은 함수**를 쓴다(`repeatPlan`). 여기서 따로 세면 저작 화면과 도면이
|
|
81
|
-
* 갈린다.
|
|
82
|
-
*
|
|
83
|
-
* 판이 곧 기준 상자다. 인스턴스 배율은 1 이다 — 저작 화면에는 인스턴스가 없다.
|
|
84
|
-
*/
|
|
85
|
-
private applyRepeat;
|
|
86
|
-
/**
|
|
87
|
-
* 회전이 바뀌어도 줄을 다시 편다.
|
|
88
|
-
*
|
|
89
|
-
* 자리를 부모 회전으로 되돌려 적어 두었으므로, 회전이 바뀌면 그 값도 다시 잡아야 한다.
|
|
90
|
-
* 안 하면 돌린 각도만큼 줄이 어긋난 채로 남는다.
|
|
91
|
-
*/
|
|
92
|
-
updateRotate(): void;
|
|
93
|
-
/**
|
|
94
|
-
* **이 컴포넌트가 새로 들인 값이 바뀌면 무엇을 고치나.**
|
|
95
|
-
*
|
|
96
|
-
* 밑바탕은 씬 공통 낱말만 안다 — 자리 · 치수 · 회전 · 배율 · 숨김 · 분할 수. 그런데
|
|
97
|
-
* 이 컴포넌트는 제 값을 일곱 더 들였고(`primitive` · `round` · `path` · `token` ·
|
|
98
|
-
* `preset` · `sizing` · `repeat`), 그것들이 바뀔 때 무엇을 고쳐야 하는지 아무 데도
|
|
99
|
-
* 적히지 않았다. 그래서 속성 편집기에서 도형을 바꾸거나 색을 바꾸거나 한 칸을 고쳐도
|
|
100
|
-
* 화면이 그대로였다. 값은 제대로 들어갔고 고칠 사람이 없었을 뿐이다.
|
|
101
|
-
*
|
|
102
|
-
* 고칠 거리가 셋이다.
|
|
103
|
-
*
|
|
104
|
-
* 형상이 달라진다 다시 세운다 — 배율로는 안 된다
|
|
105
|
-
* 재질만 달라진다 사본들의 재질만 바꿔 끼운다
|
|
106
|
-
* 줄만 달라진다 다시 편다
|
|
107
|
-
*/
|
|
108
|
-
onchange(after: Properties, before: Properties): void;
|
|
109
|
-
/** 단면을 밀어 만든 것인가 — 평면 치수가 형상에 구워져 있다. */
|
|
110
|
-
private get isExtruded();
|
|
111
|
-
/** 재질만 갈아 끼운다. 형상은 그대로 두고, 사본들이 함께 쓴다. */
|
|
112
|
-
private applyMaterial;
|
|
113
|
-
/** 이 부품의 반복 계획. 판을 기준 상자로 삼고 배율은 1 로 본다. */
|
|
114
|
-
private repeatPlanNow;
|
|
115
|
-
/**
|
|
116
|
-
* 이 컴포넌트를 청사진 부품처럼 보이게 한 것.
|
|
117
|
-
*
|
|
118
|
-
* 한 칸이 중심에서 중심까지라서 개수는 회전과 무관하다. 그래도 회전을 채워 넘기는
|
|
119
|
-
* 것은, 이 모양이 청사진 부품과 같아야 `figure-sizing` 의 다른 셈에도 그대로 넘길 수
|
|
120
|
-
* 있기 때문이다. 씬은 라디안을 쓰고 이름이 뒤섞여 있다 — `rotationY` 가 형식의 z 로 간다.
|
|
121
|
-
*/
|
|
122
|
-
private asMember;
|
|
123
|
-
/**
|
|
124
|
-
* 부모에 걸린 회전과 배율을 되돌리는 값.
|
|
125
|
-
*
|
|
126
|
-
* **`object3d` 에서 읽는다 — 그것이 부모의 실제 변환이다.**
|
|
127
|
-
*
|
|
128
|
-
* 한동안 여기서 상태를 다시 셈했다. 기즈모로 끄는 동안 `object3d` 에는 끌고 있는
|
|
129
|
-
* 중간값이 들어 있어서, 그것으로 나누면 사본이 튈 것이라고 보았다. 반대였다. 끄는
|
|
130
|
-
* 동안 부모를 실제로 움직이는 것이 그 중간값이므로, 되돌릴 것도 그 값이다. 상태로
|
|
131
|
-
* 셈하면 부모는 이미 돌아갔는데 사본은 옛 값으로 되돌려 **줄이 통째로 끌려간다.**
|
|
132
|
-
*
|
|
133
|
-
* 두 벌로 셈하던 규칙도 하나 사라졌다. 단면을 민 것(`rect`·`polygon`)은 평면 치수가
|
|
134
|
-
* 형상에 구워져 있어 평면 배율이 1 인데, `object3d.scale` 이 이미 1 이므로 여기서
|
|
135
|
-
* 따로 가릴 것이 없다. `state.scale` 이 걸려 있어도 마찬가지로 저절로 들어온다.
|
|
136
|
-
*
|
|
137
|
-
* 대신 **부모를 건드린 자리마다 다시 펴야 한다** — 그 자리가 다섯이고, 아래에서
|
|
138
|
-
* 전부 가로챈다.
|
|
139
|
-
*/
|
|
140
|
-
private repeatUndo;
|
|
141
|
-
/**
|
|
142
|
-
* 배율이 바뀌어도 줄을 다시 편다.
|
|
143
|
-
*
|
|
144
|
-
* `setDimensionScale` 과 `state.scale` 이 둘 다 여기로 모인다.
|
|
145
|
-
*/
|
|
146
|
-
updateScale(): void;
|
|
147
|
-
/**
|
|
148
|
-
* 기즈모가 상태를 되쓸 때도 줄을 다시 편다 — **옮기기 · 돌리기.**
|
|
149
|
-
*
|
|
150
|
-
* 기즈모는 `_suppressOnchange` 를 켠 채 상태를 되쓴다. `object3d` 를 이미 움직여
|
|
151
|
-
* 놓았으니 상태에서 또 반영하면 같은 일을 두 번 한다는 판단이고, 여느 컴포넌트에는
|
|
152
|
-
* 맞다. 그런데 사본의 자리는 부모 변환을 되돌린 값이라, 부모만 바뀌고 다시 펴지
|
|
153
|
-
* 않으면 사본이 옛 자리를 그대로 타고 간다 — 대표 롤러가 제자리에서 도는 대신
|
|
154
|
-
* **줄 전체가 컴포넌트 중심을 축으로 돈다.** 속성으로 고칠 때와 기즈모로 끌 때가
|
|
155
|
-
* 다르게 도는 것이 이것이었다.
|
|
156
|
-
*/
|
|
157
|
-
syncFromObject3D(): void;
|
|
158
|
-
/**
|
|
159
|
-
* 기즈모가 상태를 되쓸 때도 줄을 다시 편다 — **크기.**
|
|
160
|
-
*
|
|
161
|
-
* 크기 기즈모는 `object3d.scale` 을 직접 끌고, 그 결과를 치수로 역산해 상태에만
|
|
162
|
-
* 적는다. 다시 펴지 않으면 사본이 옛 자리에 있는 채로 커진 배율을 받아 **개수가
|
|
163
|
-
* 아니라 간격이 늘어난다.**
|
|
164
|
-
*/
|
|
165
|
-
applyDimensionFromGizmo(props: Record<string, number>): void;
|
|
166
|
-
/** 단위 형상. 치수는 배율로 준다. */
|
|
167
|
-
private unitGeometry;
|
|
168
|
-
/**
|
|
169
|
-
* 단면을 밀어 만든 형상. **치수가 구워지므로 열쇠에 치수가 든다.**
|
|
170
|
-
*
|
|
171
|
-
* 단면은 평면도다 — 가로가 `width`, 세로가 `height` 이고 밀리는 두께가 `depth` 다.
|
|
172
|
-
* 여기서는 두께 1 로 만들고 배율로 키운다. 굴림은 평면 안의 값이라 배율에 안 눌린다.
|
|
173
|
-
*/
|
|
174
|
-
private extrudedGeometry;
|
|
175
|
-
private material;
|
|
176
|
-
/** 속을 판 것인가 — 두께까지 형상에 구워져 있다. */
|
|
177
|
-
private get isHollow();
|
|
178
|
-
/**
|
|
179
|
-
* 치수를 배율로 준다.
|
|
180
|
-
*
|
|
181
|
-
* 단면을 민 것은 평면 치수가 이미 형상에 구워져 있으므로 두께만 키운다 — 평면까지
|
|
182
|
-
* 배율을 걸면 두 번 곱해진다.
|
|
183
|
-
*
|
|
184
|
-
* **속을 판 것은 두께도 구워져 있다.** 벽과 바닥 두께를 지키려면 제 높이로 만들 수밖에
|
|
185
|
-
* 없고, 그러고 나서 두께에 배율을 또 걸면 165 짜리 통이 165 배가 된다. 카메라가 통
|
|
186
|
-
* 안으로 들어가 화면이 흰 벽만 보여 준 것이 이것이었다.
|
|
187
|
-
*/
|
|
188
|
-
updateDimension(): void;
|
|
189
|
-
}
|
|
190
|
-
declare const FigurePart_base: {
|
|
191
|
-
new (...args: any[]): {
|
|
192
|
-
contains(x: number, y: number): boolean;
|
|
193
|
-
get path(): {
|
|
194
|
-
x: any;
|
|
195
|
-
y: any;
|
|
196
|
-
}[];
|
|
197
|
-
set path(path: {
|
|
198
|
-
x: any;
|
|
199
|
-
y: any;
|
|
200
|
-
}[]);
|
|
201
|
-
get anchors(): {
|
|
202
|
-
name: string;
|
|
203
|
-
position: {
|
|
204
|
-
x: any;
|
|
205
|
-
y: any;
|
|
206
|
-
};
|
|
207
|
-
}[];
|
|
208
|
-
get bounds(): any;
|
|
209
|
-
set bounds(bounds: any);
|
|
210
|
-
render(ctx: CanvasRenderingContext2D): void;
|
|
211
|
-
_app: any;
|
|
212
|
-
_model: any;
|
|
213
|
-
_state: any;
|
|
214
|
-
_delta: any;
|
|
215
|
-
_animation: any;
|
|
216
|
-
_animate: any;
|
|
217
|
-
_parent: any;
|
|
218
|
-
_disposed: any;
|
|
219
|
-
_textHidden: any;
|
|
220
|
-
_text_substitutor: any;
|
|
221
|
-
_value_substitutor: any;
|
|
222
|
-
_mappings: any;
|
|
223
|
-
_realObject: IRealObject | undefined;
|
|
224
|
-
_cachedState: any;
|
|
225
|
-
updatedAt: any;
|
|
226
|
-
fontSize: any;
|
|
227
|
-
__cache__: any;
|
|
228
|
-
created(): void;
|
|
229
|
-
added(parent: import("../types/component.js").Container): void;
|
|
230
|
-
removed(parent: import("../types/component.js").Container): void;
|
|
231
|
-
ready(): Promise<void>;
|
|
232
|
-
_readyInvoked: boolean;
|
|
233
|
-
invokeReady(): void | Promise<void>;
|
|
234
|
-
touch(): void;
|
|
235
|
-
clearCache(...attrs: string[]): void;
|
|
236
|
-
removeSelf(completely?: boolean): void;
|
|
237
|
-
resetAnimation(): void;
|
|
238
|
-
dispose(): void;
|
|
239
|
-
get nature(): ComponentNature;
|
|
240
|
-
get disposed(): boolean;
|
|
241
|
-
isLayer(): boolean;
|
|
242
|
-
isGroup(): boolean;
|
|
243
|
-
isContainer(): this is import("../types/component.js").Container;
|
|
244
|
-
isLine(): boolean;
|
|
245
|
-
isRoot(): boolean;
|
|
246
|
-
isRootModel(): boolean;
|
|
247
|
-
is3dish(): boolean;
|
|
248
|
-
get is3dMode(): boolean;
|
|
249
|
-
isIn3DSpace(): boolean;
|
|
250
|
-
isTemplate(): boolean;
|
|
251
|
-
isHTMLElement(): boolean;
|
|
252
|
-
isConnectable(): boolean;
|
|
253
|
-
isIdentifiable(): boolean;
|
|
254
|
-
isPositionable(): boolean;
|
|
255
|
-
replaceRefids(replaceMap: Record<string, string>): void;
|
|
256
|
-
get(property: string): any;
|
|
257
|
-
set(props: any, propval?: any): any;
|
|
258
|
-
getState(property: string): any;
|
|
259
|
-
setState(props: Partial<import("../index.js").State> | string, propval?: any): any;
|
|
260
|
-
get model(): any;
|
|
261
|
-
get state(): import("../index.js").State;
|
|
262
|
-
get refid(): any;
|
|
263
|
-
get hierarchy(): any;
|
|
264
|
-
get volatile(): string[];
|
|
265
|
-
_applyProps(target: Record<string, any>, props: Record<string, any>, options: import("../components/component.js").ApplyPropsOptions): /*elided*/ any;
|
|
266
|
-
move(offset: {
|
|
267
|
-
x: number;
|
|
268
|
-
y: number;
|
|
269
|
-
}, ...args: boolean[]): void;
|
|
270
|
-
symmetryX(x?: number): void;
|
|
271
|
-
symmetryY(y: number): void;
|
|
272
|
-
adjustResize(bounds: import("../index.js").BOUNDS, origin_bounds: import("../index.js").BOUNDS, diagonal: boolean): {
|
|
273
|
-
left: any;
|
|
274
|
-
top: any;
|
|
275
|
-
width: any;
|
|
276
|
-
height: any;
|
|
277
|
-
};
|
|
278
|
-
adjustRotation(rotation: number, step: boolean): number;
|
|
279
|
-
outline(progress: number): any;
|
|
280
|
-
get center(): import("../index.js").POINT;
|
|
281
|
-
set center(p: import("../index.js").POINT);
|
|
282
|
-
get location(): import("../index.js").POINT;
|
|
283
|
-
set location(l: import("../index.js").POINT);
|
|
284
|
-
get rotate(): import("../index.js").POINT;
|
|
285
|
-
set rotate(r: import("../index.js").POINT);
|
|
286
|
-
get dimension(): import("../index.js").DIMENSION;
|
|
287
|
-
set dimension(d: import("../index.js").DIMENSION);
|
|
288
|
-
get drawPath(): import("../index.js").POINT[];
|
|
289
|
-
get rotatePoint(): import("../index.js").POINT;
|
|
290
|
-
get mutable(): boolean;
|
|
291
|
-
get resizable(): boolean;
|
|
292
|
-
get rotatable(): boolean;
|
|
293
|
-
buildRealObject(): IRealObject | undefined;
|
|
294
|
-
get realObject(): IRealObject | undefined;
|
|
295
|
-
draw(context?: SceneRenderContext): void;
|
|
296
|
-
prerender(context: SceneRenderContext): void;
|
|
297
|
-
postrender(context: SceneRenderContext): void;
|
|
298
|
-
prepare(resolve: (component: Component) => void, reject: (reason: any) => void): void;
|
|
299
|
-
prepareIf(condition: boolean): void;
|
|
300
|
-
drawText(context: SceneRenderContext): void;
|
|
301
|
-
drawStroke(context: SceneRenderContext, override?: Record<string, unknown>): void;
|
|
302
|
-
drawFill(context: SceneRenderContext, override?: Record<string, unknown>): void;
|
|
303
|
-
get strokeStyle(): any;
|
|
304
|
-
set strokeStyle(v: any);
|
|
305
|
-
get fillStyle(): any;
|
|
306
|
-
set fillStyle(v: any);
|
|
307
|
-
get fontColor(): string;
|
|
308
|
-
set fontColor(v: string);
|
|
309
|
-
get rotation(): number;
|
|
310
|
-
set rotation(v: number);
|
|
311
|
-
get decorators(): string[];
|
|
312
|
-
get decotag(): string;
|
|
313
|
-
get hidden(): boolean;
|
|
314
|
-
set hidden(v: boolean);
|
|
315
|
-
get tag(): string;
|
|
316
|
-
set tag(v: string);
|
|
317
|
-
get appendum(): any;
|
|
318
|
-
set appendum(v: any);
|
|
319
|
-
defaultTextSubstitutor(): string;
|
|
320
|
-
textLines(context?: SceneRenderContext): any[][];
|
|
321
|
-
get font(): string;
|
|
322
|
-
get lineHeight(): number;
|
|
323
|
-
get textSubstitutor(): () => string;
|
|
324
|
-
get text(): string;
|
|
325
|
-
set text(v: string);
|
|
326
|
-
get textBounds(): import("../index.js").BOUNDS;
|
|
327
|
-
get textRotation(): number;
|
|
328
|
-
get textHidden(): boolean;
|
|
329
|
-
set textHidden(v: boolean);
|
|
330
|
-
get hasTextProperty(): boolean;
|
|
331
|
-
animate(opts: import("../index.js").AnimationConfig): any;
|
|
332
|
-
effect(context: SceneRenderContext, model: any): void;
|
|
333
|
-
serialize(...others: any[]): string;
|
|
334
|
-
trim(): void;
|
|
335
|
-
closeScene(data: any): void;
|
|
336
|
-
delta(attr?: string | object, value?: any): any;
|
|
337
|
-
invalidate(): void;
|
|
338
|
-
get value(): any;
|
|
339
|
-
set value(v: any);
|
|
340
|
-
get data(): any;
|
|
341
|
-
set data(v: any);
|
|
342
|
-
set tap(v: any);
|
|
343
|
-
get mappings(): any[];
|
|
344
|
-
get retention(): number;
|
|
345
|
-
get animation(): import("../index.js").AnimationController | undefined;
|
|
346
|
-
get started(): boolean;
|
|
347
|
-
set started(v: boolean);
|
|
348
|
-
get controls(): import("../index.js").Control[] | undefined;
|
|
349
|
-
findFirst(finder: string | ((c: Component) => boolean), ...others: any[]): Component | undefined;
|
|
350
|
-
findAll(s: string | ((c: Component) => boolean), ...others: any[]): any[] | undefined;
|
|
351
|
-
capture(x: number, y: number, except?: (c: Component) => boolean): any;
|
|
352
|
-
findAnchor(name: string): any;
|
|
353
|
-
isDescendible(container: Component | any): boolean;
|
|
354
|
-
getContext(component?: unknown): any;
|
|
355
|
-
get root(): Component;
|
|
356
|
-
get rootModel(): Component;
|
|
357
|
-
get parent(): Component;
|
|
358
|
-
set parent(v: Component);
|
|
359
|
-
get scalable(): boolean;
|
|
360
|
-
get stuck(): boolean;
|
|
361
|
-
get capturable(): boolean;
|
|
362
|
-
get position(): string;
|
|
363
|
-
get origin(): string;
|
|
364
|
-
get offset(): import("../index.js").POINT;
|
|
365
|
-
get app(): import("../index.js").ApplicationContext;
|
|
366
|
-
drawEffect(context: SceneRenderContext): void;
|
|
367
|
-
prepareFill(resolve: Function, reject: Function): void;
|
|
368
|
-
prepareFillIf(condition: boolean): void;
|
|
369
|
-
onchangeFill(after: Record<string, any>, before: Record<string, any>): void;
|
|
370
|
-
drawImage(context: SceneRenderContext, image: HTMLImageElement, left: number, top: number, width: number, height: number): void;
|
|
371
|
-
mutateBounds(logic: ((bounds: import("../index.js").BOUNDS) => import("../index.js").BOUNDS | void) | null, context?: any): void;
|
|
372
|
-
mutatePath(beforeLogic: ((path: import("../index.js").POINT[]) => import("../index.js").POINT[] | void) | null, afterLogic: ((path: import("../index.js").POINT[]) => import("../index.js").POINT[] | void) | null, context?: any): void;
|
|
373
|
-
access(accessor: string): any;
|
|
374
|
-
substitute(template: string, data: any): string | undefined;
|
|
375
|
-
onchangeMappings(after: Record<string, any>, before: Record<string, any>): void;
|
|
376
|
-
onchangeData(after: Record<string, any>, before: Record<string, any>): void;
|
|
377
|
-
buildMappings(): void;
|
|
378
|
-
executeMappings(force?: boolean): void;
|
|
379
|
-
disposeMappings(): void;
|
|
380
|
-
ondropfile(transfered: FileList, files: string[]): void;
|
|
381
|
-
transcoordS2P(x: number, y: number, rp?: import("../index.js").POINT): import("../index.js").POINT;
|
|
382
|
-
transcoordP2S(x: number, y: number, rp?: import("../index.js").POINT): import("../index.js").POINT;
|
|
383
|
-
transcoordS2T(x: number, y: number, top?: Component): import("../index.js").POINT;
|
|
384
|
-
transcoordT2P(x: number, y: number, top?: Component): import("../index.js").POINT;
|
|
385
|
-
transcoordT2S(x: number, y: number, top?: Component): import("../index.js").POINT;
|
|
386
|
-
transcoordS2TR(x: number, y: number, top?: Component): import("../index.js").POINT;
|
|
387
|
-
transcoordS2O(x: number, y: number, target: Component): import("../index.js").POINT;
|
|
388
|
-
transcoordC2S(x: number, y: number, top?: Component): import("../index.js").POINT;
|
|
389
|
-
transcoordS2C(x: number, y: number, top?: Component): import("../index.js").POINT;
|
|
390
|
-
toParent(x: number, y: number, rp?: import("../index.js").POINT): import("../index.js").POINT;
|
|
391
|
-
fromParent(x: number, y: number, rp?: import("../index.js").POINT): import("../index.js").POINT;
|
|
392
|
-
toScene(x: number, y: number, top?: Component): import("../index.js").POINT;
|
|
393
|
-
fromScene(x: number, y: number, top?: Component): import("../index.js").POINT;
|
|
394
|
-
toLocal(x: number, y: number, top?: Component): import("../index.js").POINT;
|
|
395
|
-
toGlobal(x: number, y: number, top?: Component): import("../index.js").POINT;
|
|
396
|
-
toOther(x: number, y: number, target: Component): import("../index.js").POINT;
|
|
397
|
-
on<K extends keyof import("../index.js").ComponentEventMap>(name: K, callback: (...args: import("../index.js").ComponentEventMap[K]) => void, context?: any): /*elided*/ any;
|
|
398
|
-
on(name: string | object, callback: Function, context?: any): /*elided*/ any;
|
|
399
|
-
off<K extends keyof import("../index.js").ComponentEventMap>(name: K, callback?: ((...args: import("../index.js").ComponentEventMap[K]) => void) | undefined, context?: any): /*elided*/ any;
|
|
400
|
-
off(name?: string | object, callback?: Function, context?: any): /*elided*/ any;
|
|
401
|
-
once<K extends keyof import("../index.js").ComponentEventMap>(name: K, callback: (...args: import("../index.js").ComponentEventMap[K]) => void, context?: any): /*elided*/ any;
|
|
402
|
-
once(name: string | object, callback: Function, context?: any): /*elided*/ any;
|
|
403
|
-
trigger<K extends keyof import("../index.js").ComponentEventMap>(name: K, ...args: import("../index.js").ComponentEventMap[K]): /*elided*/ any;
|
|
404
|
-
trigger(name: string, ...args: any[]): /*elided*/ any;
|
|
405
|
-
delegate_on(delegator: any): /*elided*/ any;
|
|
406
|
-
delegate_off(delegator: any): /*elided*/ any;
|
|
407
|
-
onchange(after: Record<string, any>, before: Record<string, any>): void;
|
|
408
|
-
calculateBounds?(): void;
|
|
409
|
-
oncreate_element?(element: HTMLElement): void;
|
|
410
|
-
removeComponent(component: Component, ghost?: boolean): void;
|
|
411
|
-
addComponent(component: Component, ghost?: boolean): void;
|
|
412
|
-
insertComponentAt(component: Component, index: number, ghost?: boolean): void;
|
|
413
|
-
getOverlay(component: Component): HTMLElement | undefined;
|
|
414
|
-
findById(id: string): Component | undefined;
|
|
415
|
-
findByRefid(ref: string | number): Component | undefined;
|
|
416
|
-
findAllById(id: string): Component[];
|
|
417
|
-
resize(): void;
|
|
418
|
-
fit(type?: string): void;
|
|
419
|
-
get components(): Component[] | undefined;
|
|
420
|
-
get layout(): any;
|
|
421
|
-
get auxOverlay(): HTMLElement | undefined;
|
|
422
|
-
get isReady(): boolean;
|
|
423
|
-
get unitScale(): number;
|
|
424
|
-
get selected(): Component[];
|
|
425
|
-
set selected(_v: Component[]);
|
|
426
|
-
get focused(): Component | null;
|
|
427
|
-
set focused(_v: Component | null);
|
|
428
|
-
get hasSameParentForAllSelected(): boolean;
|
|
429
|
-
set hasSameParentForAllSelected(_v: boolean);
|
|
430
|
-
get fitMode(): string | undefined;
|
|
431
|
-
set fitMode(_v: string | undefined);
|
|
432
|
-
get element(): HTMLElement | null;
|
|
433
|
-
set element(_v: HTMLElement | null);
|
|
434
|
-
};
|
|
435
|
-
} & typeof Shape;
|
|
436
|
-
/**
|
|
437
|
-
* 저작 중인 부품. 판 위에 놓이는 여느 컴포넌트다.
|
|
438
|
-
*
|
|
439
|
-
* 2D 는 위에서 내려다본 발자국을 그린다. 저작면의 2D 뷰와 배포된 Figure 의 2D 표현이
|
|
440
|
-
* 같은 규칙으로 그려져야, 접기 전후로 그림이 달라지지 않는다.
|
|
441
|
-
*/
|
|
442
|
-
export declare class FigurePart extends FigurePart_base {
|
|
443
|
-
/** 이름이 `register` 면 밑바탕 클래스의 것과 부딪힌다 — `FigureInstance` 와 같은 이름을 쓴다. */
|
|
444
|
-
static registerType(): void;
|
|
445
|
-
get hasTextProperty(): boolean;
|
|
446
|
-
is3dish(): boolean;
|
|
447
|
-
get nature(): ComponentNature;
|
|
448
|
-
buildRealObject(): IRealObject | undefined;
|
|
449
|
-
render(ctx: SceneRenderContext): void;
|
|
450
|
-
/** 위에서 내려다본 발자국. 3D 와 **같은 분할 수**로 근사한다. */
|
|
451
|
-
private traceFootprint;
|
|
452
|
-
}
|
|
453
|
-
export {};
|
|
454
|
-
//# sourceMappingURL=figure-part-component.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"figure-part-component.d.ts","sourceRoot":"","sources":["../../src/figure/figure-part-component.ts"],"names":[],"mappings":"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"}
|