@vvfx/sdk 0.1.19-alpha.9 → 0.2.0
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/LICENSE +22 -0
- package/dist/index.js +96633 -14
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +96736 -0
- package/dist/index.mjs.map +1 -0
- package/dist/src/config.d.ts +855 -0
- package/dist/src/exporter/config.d.ts +18 -0
- package/dist/src/exporter/const.d.ts +71 -0
- package/dist/src/exporter/export-media.d.ts +68 -0
- package/dist/src/exporter/exporter.d.ts +22 -0
- package/dist/src/exporter/index.d.ts +2 -0
- package/dist/src/exporter/types.d.ts +194 -0
- package/dist/src/exporter/utils.d.ts +22 -0
- package/dist/src/exporter/wav-audio.d.ts +27 -0
- package/dist/src/gesture-handler/gizmo/adsorption-gizmo.d.ts +68 -0
- package/dist/src/gesture-handler/gizmo/control-gizmo.d.ts +67 -0
- package/dist/src/gesture-handler/gizmo/gizmo.d.ts +59 -0
- package/dist/src/gesture-handler/gizmo/icon-gizmo.d.ts +44 -0
- package/dist/src/gesture-handler/gizmo/index.d.ts +6 -0
- package/dist/src/gesture-handler/gizmo/item-create-gizmo.d.ts +43 -0
- package/dist/src/gesture-handler/gizmo/loading-gizmo.d.ts +48 -0
- package/dist/src/gesture-handler/gizmo/mask-gizmo.d.ts +113 -0
- package/dist/src/gesture-handler/gizmo/picture-cut-gizmo.d.ts +94 -0
- package/dist/src/gesture-handler/gizmo/picture-expand-gizmo.d.ts +57 -0
- package/dist/src/gesture-handler/gizmo/preference-gizmo.d.ts +32 -0
- package/dist/src/gesture-handler/gizmo/selector-gizmo.d.ts +101 -0
- package/dist/src/gesture-handler/gizmo/sprite-text-edit-gizmo.d.ts +36 -0
- package/dist/src/gesture-handler/gizmo/text-gizmo.d.ts +128 -0
- package/dist/src/gesture-handler/gizmo/transform-gizmo.d.ts +233 -0
- package/dist/src/gesture-handler/gizmo/type.d.ts +402 -0
- package/dist/src/gesture-handler/index.d.ts +3 -0
- package/dist/src/gesture-handler/src/gesture-handler.d.ts +143 -0
- package/dist/src/gesture-handler/src/icons.d.ts +7 -0
- package/dist/src/gesture-handler/utils.d.ts +2 -0
- package/dist/src/html-overlay/auto-height-runtime.d.ts +13 -0
- package/dist/src/html-overlay/document-runtime.d.ts +4 -0
- package/dist/src/html-overlay/document-transform.d.ts +7 -0
- package/dist/src/html-overlay/dom-order.d.ts +1 -0
- package/dist/src/html-overlay/host-message-runtime.d.ts +3 -0
- package/dist/src/html-overlay/html-viewport-style.d.ts +1 -0
- package/dist/src/html-overlay/index.d.ts +1 -0
- package/dist/src/html-overlay/manager.d.ts +77 -0
- package/dist/src/html-overlay/mime-utils.d.ts +2 -0
- package/dist/src/html-overlay/overlay-transform.d.ts +13 -0
- package/dist/src/html-overlay/path-utils.d.ts +8 -0
- package/dist/src/html-overlay/shell-runtime.d.ts +6 -0
- package/dist/src/index.d.ts +14 -0
- package/dist/src/math/box2.d.ts +166 -0
- package/dist/src/math/circle.d.ts +82 -0
- package/dist/src/math/euler.d.ts +20 -0
- package/dist/src/math/index.d.ts +13 -0
- package/dist/src/math/line2.d.ts +93 -0
- package/dist/src/math/line3.d.ts +17 -0
- package/dist/src/math/matrix4.d.ts +28 -0
- package/dist/src/math/plane.d.ts +14 -0
- package/dist/src/math/quaternion.d.ts +3 -0
- package/dist/src/math/ray-caster.d.ts +10 -0
- package/dist/src/math/ray.d.ts +18 -0
- package/dist/src/math/type.d.ts +32 -0
- package/dist/src/math/utils.d.ts +19 -0
- package/dist/src/math/vector2.d.ts +30 -0
- package/dist/src/math/vector3.d.ts +29 -0
- package/dist/src/screen-shot/index.d.ts +1 -0
- package/dist/src/screen-shot/screen-shot.d.ts +35 -0
- package/dist/src/sdk-item/base-item.d.ts +126 -0
- package/dist/src/sdk-item/card-item.d.ts +67 -0
- package/dist/src/sdk-item/effects-item.d.ts +70 -0
- package/dist/src/sdk-item/frame-item.d.ts +112 -0
- package/dist/src/sdk-item/generator-item.d.ts +86 -0
- package/dist/src/sdk-item/group-item.d.ts +57 -0
- package/dist/src/sdk-item/index.d.ts +36 -0
- package/dist/src/sdk-item/sprite-item.d.ts +67 -0
- package/dist/src/sdk-item/text-item.d.ts +107 -0
- package/dist/src/sdk-item/types.d.ts +153 -0
- package/dist/src/sdk-item/video-item.d.ts +87 -0
- package/dist/src/sdk.d.ts +589 -0
- package/dist/src/service/UndoRedo.d.ts +48 -0
- package/dist/src/shared/index.d.ts +1 -0
- package/dist/src/shared/player.d.ts +9 -0
- package/dist/src/size-adapte/index.d.ts +1 -0
- package/dist/src/size-adapte/size-adapt.d.ts +28 -0
- package/dist/src/types.d.ts +1298 -0
- package/dist/src/utils/background-manager.d.ts +72 -0
- package/dist/src/utils/common-utils.d.ts +28 -0
- package/dist/src/utils/index.d.ts +8 -0
- package/dist/src/utils/interaction-utils.d.ts +60 -0
- package/dist/src/utils/json-data-utils.d.ts +165 -0
- package/dist/src/utils/layout-utils.d.ts +219 -0
- package/dist/src/utils/page-data-utils.d.ts +372 -0
- package/dist/src/utils/player-data-utils.d.ts +11 -0
- package/dist/src/utils/types.d.ts +114 -0
- package/dist/src/wireframe/common/box.d.ts +1 -0
- package/dist/src/wireframe/common/dashed-line.d.ts +1 -0
- package/dist/src/wireframe/common/line.d.ts +1 -0
- package/dist/src/wireframe/common/pixi-ext.d.ts +11 -0
- package/dist/src/wireframe/common/pixi.d.ts +18 -0
- package/dist/src/wireframe/index.d.ts +4 -0
- package/package.json +42 -22
- package/dist/index.cjs +0 -14
- package/dist/index.d.cts +0 -3555
- package/dist/index.d.ts +0 -3555
- package/dist/index.global.js +0 -333
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { Vector2 } from './vector2';
|
|
2
|
+
/**
|
|
3
|
+
* @class 二维线段
|
|
4
|
+
*/
|
|
5
|
+
export declare class Line2 {
|
|
6
|
+
start: Vector2;
|
|
7
|
+
end: Vector2;
|
|
8
|
+
constructor(start?: Vector2, end?: Vector2);
|
|
9
|
+
/**
|
|
10
|
+
* 设置二维线段
|
|
11
|
+
* @param {Vector2} start 线段起点
|
|
12
|
+
* @param {Vector2} end 线段终点
|
|
13
|
+
* @returns {Line2} 二维线段
|
|
14
|
+
*/
|
|
15
|
+
set(start: Vector2, end: Vector2): this;
|
|
16
|
+
/**
|
|
17
|
+
* 复制二维线段
|
|
18
|
+
* @param {Line2} line 复制对象
|
|
19
|
+
* @returns {Line2} 复制结果
|
|
20
|
+
*/
|
|
21
|
+
copyFrom(line: Line2): this;
|
|
22
|
+
/**
|
|
23
|
+
* 二维线段求方向
|
|
24
|
+
* @returns {Vector2} 二维线段方向
|
|
25
|
+
*/
|
|
26
|
+
direction(): Vector2;
|
|
27
|
+
/**
|
|
28
|
+
* 二维线段求中点
|
|
29
|
+
* @param {Vector2} [target=new Vector2()] 目标保存对象
|
|
30
|
+
* @returns {Vector2} 二维线段中点
|
|
31
|
+
*/
|
|
32
|
+
getCenter(target?: Vector2): Vector2;
|
|
33
|
+
/**
|
|
34
|
+
* 二维线段向量值
|
|
35
|
+
* @param {Vector2} [target=new Vector2()] 目标保存对象
|
|
36
|
+
* @returns {Vector2} 二维线段向量值
|
|
37
|
+
*/
|
|
38
|
+
delta(target?: Vector2): Vector2;
|
|
39
|
+
/**
|
|
40
|
+
* 二维线段欧式距离平方(应用于计算)
|
|
41
|
+
* @returns {number} 计算结果
|
|
42
|
+
*/
|
|
43
|
+
distanceSq(): number;
|
|
44
|
+
/**
|
|
45
|
+
* 二维线段欧式距离
|
|
46
|
+
* @returns {number} 计算结果
|
|
47
|
+
*/
|
|
48
|
+
distance(): number;
|
|
49
|
+
/**
|
|
50
|
+
* 求二维线段比例点
|
|
51
|
+
* @param {number} t 比例值
|
|
52
|
+
* @param {Vector2} target 目标保存对象
|
|
53
|
+
* @returns {Vector2} 比例点结果
|
|
54
|
+
*/
|
|
55
|
+
at(t: number, target?: Vector2): Vector2;
|
|
56
|
+
/**
|
|
57
|
+
* 求点与线段的最短距离
|
|
58
|
+
* @param {Vector2} point 二维空间点
|
|
59
|
+
* @param {boolean} clampToLine 是否限制于线段内
|
|
60
|
+
* @returns {number} 距离结果
|
|
61
|
+
*/
|
|
62
|
+
closestPointToPointParameter(point: Vector2, clampToLine: boolean): number;
|
|
63
|
+
/**
|
|
64
|
+
* 求点与线段的最近交点
|
|
65
|
+
* @param {Vector2} point 二维空间点
|
|
66
|
+
* @param {boolean} clampToLine 是否限制于线段内
|
|
67
|
+
* @param {Vector2} target 目标保存对象
|
|
68
|
+
* @returns {Vector2} 最近交点
|
|
69
|
+
*/
|
|
70
|
+
closestPointToPoint(point: Vector2, clampToLine: boolean, target?: Vector2): Vector2;
|
|
71
|
+
/**
|
|
72
|
+
* 二维线段判等
|
|
73
|
+
* @param {Line2} line 二维线段
|
|
74
|
+
* @returns {boolean} 判等结果
|
|
75
|
+
*/
|
|
76
|
+
equals(line: Line2): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* 克隆二维线段
|
|
79
|
+
* @returns {Line2} 克隆结果
|
|
80
|
+
*/
|
|
81
|
+
clone(): Line2;
|
|
82
|
+
/**
|
|
83
|
+
* 二维线段求长度
|
|
84
|
+
* @returns {number} 长度
|
|
85
|
+
*/
|
|
86
|
+
length(): number;
|
|
87
|
+
/**
|
|
88
|
+
* 二维线段判断相交
|
|
89
|
+
* @param {Line2} other 二维线段
|
|
90
|
+
* @returns {boolean} 相交判断结果
|
|
91
|
+
*/
|
|
92
|
+
crossWithLine(other: Line2): boolean;
|
|
93
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Vector3 } from './vector3';
|
|
2
|
+
/**
|
|
3
|
+
* @class 三维线段
|
|
4
|
+
*/
|
|
5
|
+
export declare class Line3 {
|
|
6
|
+
start: Vector3;
|
|
7
|
+
end: Vector3;
|
|
8
|
+
/**
|
|
9
|
+
* 构造函数
|
|
10
|
+
* @param {Vector3} [start=new Vector3()] 线段起点,默认值为(0, 0, 0)
|
|
11
|
+
* @param {Vector3} [end=new Vector3()] 线段终点,默认值为(0, 0, 0)
|
|
12
|
+
*/
|
|
13
|
+
constructor(start?: Vector3, end?: Vector3);
|
|
14
|
+
closestPointToPointParameter(point: Vector3, clampToLine?: boolean): number;
|
|
15
|
+
closestPointToPoint(point: Vector3, clampToLine?: boolean): Vector3;
|
|
16
|
+
delta(): Vector3;
|
|
17
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { math } from '../shared';
|
|
2
|
+
import type { Euler } from './euler';
|
|
3
|
+
import type { Quaternion } from './quaternion';
|
|
4
|
+
import { Vector3 } from './vector3';
|
|
5
|
+
export declare class Matrix4 extends math.Matrix4 {
|
|
6
|
+
/**
|
|
7
|
+
* 通过数组创建矩阵
|
|
8
|
+
* @param array - 数组
|
|
9
|
+
* @param [offset=0] - 起始偏移值
|
|
10
|
+
* @returns 矩阵
|
|
11
|
+
*/
|
|
12
|
+
static fromArray(array: math.Matrix4DataType, offset?: number): Matrix4;
|
|
13
|
+
clone(): Matrix4;
|
|
14
|
+
compose(translation: Vector3, rotation: Quaternion, scale: Vector3, anchor?: math.Vector3): this;
|
|
15
|
+
/**
|
|
16
|
+
* 导出四维矩阵[三维空间变换矩阵]旋转部分
|
|
17
|
+
* @param {Matrix4} m 四维矩阵
|
|
18
|
+
* @returns {Matrix4} 导出结果
|
|
19
|
+
*/
|
|
20
|
+
extractRotation(m: Matrix4): this;
|
|
21
|
+
/**
|
|
22
|
+
* 由欧拉角设置四维矩阵
|
|
23
|
+
* @param {Euler} euler 欧拉角
|
|
24
|
+
* @returns {Matrix4} 四维矩阵
|
|
25
|
+
*/
|
|
26
|
+
makeRotationFromEuler(euler: Euler): this;
|
|
27
|
+
setPosition(position: Vector3): this;
|
|
28
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Vector3 } from './vector3';
|
|
2
|
+
export declare class Plane {
|
|
3
|
+
distance: number;
|
|
4
|
+
normal: Vector3;
|
|
5
|
+
constructor(distance?: number, normal?: Vector3);
|
|
6
|
+
static set(distance: number, normal: Vector3): Plane;
|
|
7
|
+
set(distance: number, normal: Vector3): this;
|
|
8
|
+
static copy(target: Plane): Plane;
|
|
9
|
+
copy(target: Plane): this;
|
|
10
|
+
static setFromNormalAndCoplanarPoint(point: Vector3, normal: Vector3): Plane;
|
|
11
|
+
setFromNormalAndCoplanarPoint(point: Vector3, normal: Vector3): this;
|
|
12
|
+
clone(): Plane;
|
|
13
|
+
distanceToPoint(point: Vector3): number;
|
|
14
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Plane } from './plane';
|
|
2
|
+
import { Ray } from './ray';
|
|
3
|
+
import type { RayCasterCamera, RayCastResult } from './type';
|
|
4
|
+
import type { Vector2 } from './vector2';
|
|
5
|
+
export declare class RayCaster {
|
|
6
|
+
ray: Ray;
|
|
7
|
+
constructor(ray?: Ray);
|
|
8
|
+
setFromCamera(coords: Vector2, camera: RayCasterCamera): this;
|
|
9
|
+
rayCastPlane(plane: Plane): RayCastResult | undefined;
|
|
10
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { math } from '../shared';
|
|
2
|
+
import type { Plane } from './plane';
|
|
3
|
+
import { Vector3 } from './vector3';
|
|
4
|
+
export declare class Ray extends math.Ray {
|
|
5
|
+
origin: Vector3;
|
|
6
|
+
direction: Vector3;
|
|
7
|
+
constructor(origin?: Vector3, direction?: Vector3);
|
|
8
|
+
clone(): Ray;
|
|
9
|
+
rayCastPlane(plane: Plane, _target: Vector3): number;
|
|
10
|
+
at(t: number): Vector3;
|
|
11
|
+
/**
|
|
12
|
+
* 射线到平面的距离
|
|
13
|
+
* 当两个向量都是单位向量的时候,从a投影到b的距离等于从b投影到a的距离
|
|
14
|
+
* @param plane 平面
|
|
15
|
+
* @returns 射线到平面的距离
|
|
16
|
+
*/
|
|
17
|
+
distanceToPlane(plane: Plane): number;
|
|
18
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Matrix4 } from './matrix4';
|
|
2
|
+
import type { Vector3 } from './vector3';
|
|
3
|
+
/**
|
|
4
|
+
* 射线碰撞相机参数
|
|
5
|
+
*/
|
|
6
|
+
export type RayCasterCamera = {
|
|
7
|
+
/**
|
|
8
|
+
* 位置
|
|
9
|
+
*/
|
|
10
|
+
position: Vector3;
|
|
11
|
+
/**
|
|
12
|
+
* 视图投影逆矩阵
|
|
13
|
+
*/
|
|
14
|
+
inverseViewProjectMatrix: Matrix4;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* 射线碰撞结果
|
|
18
|
+
*/
|
|
19
|
+
export type RayCastResult = {
|
|
20
|
+
/**
|
|
21
|
+
* 相交点
|
|
22
|
+
*/
|
|
23
|
+
point: Vector3;
|
|
24
|
+
/**
|
|
25
|
+
* 相交距离
|
|
26
|
+
*/
|
|
27
|
+
distance: number;
|
|
28
|
+
/**
|
|
29
|
+
* 相交构件ID
|
|
30
|
+
*/
|
|
31
|
+
id?: string;
|
|
32
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Box2 } from './box2';
|
|
2
|
+
import { Vector2 } from './vector2';
|
|
3
|
+
export declare function clamp(value: number, min: number, max: number): number;
|
|
4
|
+
/**
|
|
5
|
+
* @description 角度转弧度系数
|
|
6
|
+
*/
|
|
7
|
+
export declare const DEG2RAD: number;
|
|
8
|
+
/**
|
|
9
|
+
* @description 弧度转角度系数
|
|
10
|
+
*/
|
|
11
|
+
export declare const RAD2DEG: number;
|
|
12
|
+
export declare function getVector2Angle(vector: Vector2): number;
|
|
13
|
+
export declare function getAngleByVectors(vector1: Vector2, vector2: Vector2): number;
|
|
14
|
+
export declare function roundNumber(number: number, precision: number, method?: (x: number) => number): number;
|
|
15
|
+
export declare function getAbsMaxIndex(numbers: number[]): number;
|
|
16
|
+
export declare function isEqual(a: number, b: number): boolean;
|
|
17
|
+
export declare function isZero(v: number): boolean;
|
|
18
|
+
export declare function getBoxByNormalizeBox(origin: Box2, normalize: Box2): Box2;
|
|
19
|
+
export declare function getNormalizeBoxByBoxes(origin: Box2, current: Box2): Box2;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { math } from '../shared';
|
|
2
|
+
import { Line2 } from './line2';
|
|
3
|
+
export declare class Vector2 extends math.Vector2 {
|
|
4
|
+
subtract(other: Vector2): this;
|
|
5
|
+
toViewCoordinate(width: number, height: number): this;
|
|
6
|
+
clone(): Vector2;
|
|
7
|
+
distanceTo(other: Vector2): number;
|
|
8
|
+
scaleByCenter(scalar: Vector2, anchor?: Vector2): this;
|
|
9
|
+
round(precision?: number): this;
|
|
10
|
+
/**
|
|
11
|
+
* 点到直线的最短距离
|
|
12
|
+
* @returns {{d: number, t: number}} d表示距离,t表示最近点在直线的比例
|
|
13
|
+
*/
|
|
14
|
+
distanceToLine(line: Line2): {
|
|
15
|
+
d: number;
|
|
16
|
+
t: number;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* 二维向量与x轴夹角
|
|
20
|
+
* @returns {number} 弧度值
|
|
21
|
+
*/
|
|
22
|
+
angle(): number;
|
|
23
|
+
/**
|
|
24
|
+
* 二维点绕点旋转
|
|
25
|
+
* @param {Vec2} center 旋转中心
|
|
26
|
+
* @param {number} angle 旋转角度
|
|
27
|
+
* @returns {Vec2} 旋转结果
|
|
28
|
+
*/
|
|
29
|
+
rotateAround(center: Vector2, angle: number): this;
|
|
30
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { math } from '../shared';
|
|
2
|
+
import type { Euler } from './euler';
|
|
3
|
+
import type { Matrix4 } from './matrix4';
|
|
4
|
+
import { Quaternion } from './quaternion';
|
|
5
|
+
export declare class Vector3 extends math.Vector3 {
|
|
6
|
+
clone(): Vector3;
|
|
7
|
+
/**
|
|
8
|
+
* 由空间变换矩阵保存三维分量
|
|
9
|
+
* @param {Matrix4} m 四维矩阵
|
|
10
|
+
* @param {number} index 下标
|
|
11
|
+
* @returns {Vec3} 指定三维分量
|
|
12
|
+
*/
|
|
13
|
+
setFromMatrixColumn(m: Matrix4, index: number): this;
|
|
14
|
+
applyEuler(euler: Euler, _out?: Vector3): this;
|
|
15
|
+
/**
|
|
16
|
+
* 三维点根据四元数绕点的旋转
|
|
17
|
+
* @param {Quaternion} q 四元数
|
|
18
|
+
* @param {Vec3} [center=new Vec3()] 旋转中心
|
|
19
|
+
* @returns {Vec3} 旋转结果
|
|
20
|
+
*/
|
|
21
|
+
applyQuaternion(q: Quaternion, center?: Vector3): this;
|
|
22
|
+
/**
|
|
23
|
+
* 由空间变换矩阵保存三维偏移值
|
|
24
|
+
* @param {Matrix4} m 四维矩阵
|
|
25
|
+
* @returns {Vec3} 偏移值
|
|
26
|
+
*/
|
|
27
|
+
setFromMatrixPosition(m: Matrix4): this;
|
|
28
|
+
applyMatrix(matrix: Matrix4, center?: Vector3): this;
|
|
29
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './screen-shot';
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { spec } from '../shared';
|
|
2
|
+
/**
|
|
3
|
+
* @description 截图工具
|
|
4
|
+
*/
|
|
5
|
+
export declare class ScreenShot {
|
|
6
|
+
/**
|
|
7
|
+
* @description 功能开关
|
|
8
|
+
*/
|
|
9
|
+
enabled: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* @description 截图播放器
|
|
12
|
+
*/
|
|
13
|
+
private _player;
|
|
14
|
+
/**
|
|
15
|
+
* @description 截图播放器容器
|
|
16
|
+
*/
|
|
17
|
+
private _container;
|
|
18
|
+
constructor();
|
|
19
|
+
/**
|
|
20
|
+
* @description 生成截图
|
|
21
|
+
* @param scene 场景数据
|
|
22
|
+
* @param resultSize 截图大小
|
|
23
|
+
* @param tick 截图时刻
|
|
24
|
+
* @param screenArea 截图范围【可选】 - [左上角x坐标, 左上角y坐标, 截图宽度, 截图高度]
|
|
25
|
+
* @returns 截图base64数据
|
|
26
|
+
*/
|
|
27
|
+
generate(scene: spec.JSONScene | string, containerSize: spec.vec2, resultSize: spec.vec2, tick: number, background?: spec.vec4): Promise<string | undefined>;
|
|
28
|
+
dispose(): void;
|
|
29
|
+
drawImageCover(ctx: CanvasRenderingContext2D, img: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, x: number, y: number, w: number, h: number, offsetX?: number, offsetY?: number, sourceRect?: {
|
|
30
|
+
left: number;
|
|
31
|
+
top: number;
|
|
32
|
+
width: number;
|
|
33
|
+
height: number;
|
|
34
|
+
}): void;
|
|
35
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import type { BaseItemProperty, ItemCreateInfo } from '../types';
|
|
2
|
+
import { spec } from '../shared';
|
|
3
|
+
import type { SDKItemOptions, SDKItemType } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* @description SDKItem 抽象基类
|
|
6
|
+
* @description 支持属性扩展,允许添加任意自定义属性
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class BaseItem {
|
|
9
|
+
/**
|
|
10
|
+
* @description 元素ID
|
|
11
|
+
*/
|
|
12
|
+
id: string;
|
|
13
|
+
/**
|
|
14
|
+
* @description 元素名称
|
|
15
|
+
*/
|
|
16
|
+
name: string;
|
|
17
|
+
/**
|
|
18
|
+
* @description 父节点ID
|
|
19
|
+
*/
|
|
20
|
+
parentId?: string;
|
|
21
|
+
/**
|
|
22
|
+
* @description 元素生命周期
|
|
23
|
+
*/
|
|
24
|
+
duration: number;
|
|
25
|
+
/**
|
|
26
|
+
* @description 元素生命周期延时
|
|
27
|
+
*/
|
|
28
|
+
delay: number;
|
|
29
|
+
/**
|
|
30
|
+
* @description 元素结束行为
|
|
31
|
+
*/
|
|
32
|
+
endBehavior: spec.EndBehavior;
|
|
33
|
+
/**
|
|
34
|
+
* @description 是否可见
|
|
35
|
+
*/
|
|
36
|
+
visible: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* @description 是否处于锁定状态
|
|
39
|
+
*/
|
|
40
|
+
isLocked: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* @description 核心数据是否支持编辑
|
|
43
|
+
*/
|
|
44
|
+
isCoreEditable: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* @description 扩展属性存储(与 property 同级)
|
|
47
|
+
*/
|
|
48
|
+
extension: Map<string, any>;
|
|
49
|
+
/**
|
|
50
|
+
* @description 元素类型(由子类实现)
|
|
51
|
+
* @description 支持 spec.ItemType 或扩展的 SDKItemType
|
|
52
|
+
*/
|
|
53
|
+
abstract readonly type: SDKItemType;
|
|
54
|
+
/**
|
|
55
|
+
* @description 元素属性(由子类实现)
|
|
56
|
+
*/
|
|
57
|
+
abstract readonly property: BaseItemProperty;
|
|
58
|
+
constructor(options: SDKItemOptions);
|
|
59
|
+
get pixelWidth(): number;
|
|
60
|
+
get pixelHeight(): number;
|
|
61
|
+
/**
|
|
62
|
+
* @description 设置扩展属性
|
|
63
|
+
* @param key 属性名
|
|
64
|
+
* @param value 属性值
|
|
65
|
+
*/
|
|
66
|
+
setExtension(key: string, value: any): void;
|
|
67
|
+
/**
|
|
68
|
+
* @description 获取扩展属性
|
|
69
|
+
* @param key 属性名
|
|
70
|
+
* @returns 属性值
|
|
71
|
+
*/
|
|
72
|
+
getExtension(key: string): any;
|
|
73
|
+
/**
|
|
74
|
+
* @description 检查是否存在指定扩展属性
|
|
75
|
+
* @param key 属性名
|
|
76
|
+
* @returns 是否存在
|
|
77
|
+
*/
|
|
78
|
+
hasExtension(key: string): boolean;
|
|
79
|
+
/**
|
|
80
|
+
* @description 删除扩展属性
|
|
81
|
+
* @param key 属性名
|
|
82
|
+
* @returns 是否删除成功
|
|
83
|
+
*/
|
|
84
|
+
deleteExtension(key: string): boolean;
|
|
85
|
+
/**
|
|
86
|
+
* @description 获取所有扩展属性的键名列表
|
|
87
|
+
* @returns 键名数组
|
|
88
|
+
*/
|
|
89
|
+
getExtensionKeys(): string[];
|
|
90
|
+
/**
|
|
91
|
+
* @description 获取所有扩展属性
|
|
92
|
+
* @returns 扩展属性对象
|
|
93
|
+
*/
|
|
94
|
+
getAllExtension(): Record<string, any>;
|
|
95
|
+
/**
|
|
96
|
+
* @description 批量设置扩展属性
|
|
97
|
+
* @param extensions 扩展属性对象
|
|
98
|
+
*/
|
|
99
|
+
setExtensions(extensions: Record<string, any>): void;
|
|
100
|
+
/**
|
|
101
|
+
* @description 清空所有扩展属性
|
|
102
|
+
*/
|
|
103
|
+
clearExtension(): void;
|
|
104
|
+
/**
|
|
105
|
+
* @description 转换为 CreateInfo(用于元素复制/导出)
|
|
106
|
+
* @param withParent 是否包含父节点ID
|
|
107
|
+
* @returns CreateInfo 对象
|
|
108
|
+
*/
|
|
109
|
+
abstract toCreateInfo(withParent?: boolean): ItemCreateInfo;
|
|
110
|
+
/**
|
|
111
|
+
* @description 克隆 SDKItem
|
|
112
|
+
* @returns 新的 SDKItem 实例
|
|
113
|
+
*/
|
|
114
|
+
abstract clone(): BaseItem;
|
|
115
|
+
/**
|
|
116
|
+
* @description 获取基础属性的 JSON 对象,转换为普通对象(用于序列化)
|
|
117
|
+
* @returns 普通对象
|
|
118
|
+
*/
|
|
119
|
+
toJSON(): Record<string, any>;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* @description 类型守卫函数:检查对象是否是 BaseItem
|
|
123
|
+
* @param obj 要检查的对象
|
|
124
|
+
* @returns 是否是 BaseItem 实例
|
|
125
|
+
*/
|
|
126
|
+
export declare function isBaseItem(obj: any): obj is BaseItem;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { CardItemProperty, CardCreateInfo, CardHTML } from '../types';
|
|
2
|
+
import { SDKItemType, type CardItemOptions } from './types';
|
|
3
|
+
import { BaseItem } from './base-item';
|
|
4
|
+
/**
|
|
5
|
+
* @description 卡片元素 SDKItem 类
|
|
6
|
+
* @description 在 Player 中以 SpriteItem 形式渲染(透明占位,无图)
|
|
7
|
+
* @description 支持设置卡片类型(cardType)
|
|
8
|
+
*/
|
|
9
|
+
export declare class CardItem extends BaseItem {
|
|
10
|
+
/**
|
|
11
|
+
* @description 元素类型
|
|
12
|
+
*/
|
|
13
|
+
readonly type = SDKItemType.CARD;
|
|
14
|
+
/**
|
|
15
|
+
* @description 元素属性(包含 cardType)
|
|
16
|
+
*/
|
|
17
|
+
property: CardItemProperty;
|
|
18
|
+
constructor(options: CardItemOptions);
|
|
19
|
+
/**
|
|
20
|
+
* @description 卡片类型
|
|
21
|
+
*/
|
|
22
|
+
get cardType(): string;
|
|
23
|
+
set cardType(value: string);
|
|
24
|
+
/**
|
|
25
|
+
* @description HTML 覆盖层配置
|
|
26
|
+
*/
|
|
27
|
+
get html(): CardHTML | undefined;
|
|
28
|
+
set html(value: CardHTML | undefined);
|
|
29
|
+
/**
|
|
30
|
+
* @description 位置
|
|
31
|
+
*/
|
|
32
|
+
get position(): [number, number];
|
|
33
|
+
set position(value: [number, number]);
|
|
34
|
+
/**
|
|
35
|
+
* @description 宽度
|
|
36
|
+
*/
|
|
37
|
+
get width(): number;
|
|
38
|
+
set width(value: number);
|
|
39
|
+
/**
|
|
40
|
+
* @description 高度
|
|
41
|
+
*/
|
|
42
|
+
get height(): number;
|
|
43
|
+
set height(value: number);
|
|
44
|
+
/**
|
|
45
|
+
* @description 旋转(二维旋转角度)
|
|
46
|
+
*/
|
|
47
|
+
get rotation(): number;
|
|
48
|
+
set rotation(value: number);
|
|
49
|
+
/**
|
|
50
|
+
* @description 完整旋转(包含 x, y, z)
|
|
51
|
+
*/
|
|
52
|
+
get fullRotation(): [number, number, number];
|
|
53
|
+
set fullRotation(value: [number, number, number]);
|
|
54
|
+
/**
|
|
55
|
+
* @description 转换为 CardCreateInfo
|
|
56
|
+
* @param withParent 是否包含父节点ID
|
|
57
|
+
*/
|
|
58
|
+
toCreateInfo(withParent?: boolean): CardCreateInfo;
|
|
59
|
+
/**
|
|
60
|
+
* @description 克隆 SDKItem
|
|
61
|
+
*/
|
|
62
|
+
clone(): CardItem;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* @description 类型守卫:检查是否是 CardItem
|
|
66
|
+
*/
|
|
67
|
+
export declare function isCardItem(obj: any): obj is CardItem;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { EffectsCreateInfo, EffectsItemProperty } from '../types';
|
|
2
|
+
import { SDKItemType, EffectsItemOptions } from './types';
|
|
3
|
+
import { BaseItem } from './base-item';
|
|
4
|
+
/**
|
|
5
|
+
* @description 特效产物 元素 SDKItem 类
|
|
6
|
+
*/
|
|
7
|
+
export declare class EffectsItem extends BaseItem {
|
|
8
|
+
/**
|
|
9
|
+
* @description 元素类型(独立类型,不属于 spec.ItemType)
|
|
10
|
+
*/
|
|
11
|
+
readonly type = SDKItemType.EFFECTS;
|
|
12
|
+
/**
|
|
13
|
+
* @description 预合成元素ID
|
|
14
|
+
*/
|
|
15
|
+
subCompositionItemId: string;
|
|
16
|
+
/**
|
|
17
|
+
* @description 元素属性
|
|
18
|
+
*/
|
|
19
|
+
property: EffectsItemProperty;
|
|
20
|
+
constructor(options: EffectsItemOptions);
|
|
21
|
+
/**
|
|
22
|
+
* @description 特效资源地址
|
|
23
|
+
*/
|
|
24
|
+
get effects(): string;
|
|
25
|
+
set effects(value: string);
|
|
26
|
+
/**
|
|
27
|
+
* @description 位置
|
|
28
|
+
*/
|
|
29
|
+
get position(): [number, number];
|
|
30
|
+
set position(value: [number, number]);
|
|
31
|
+
/**
|
|
32
|
+
* @description 宽度
|
|
33
|
+
*/
|
|
34
|
+
get width(): number;
|
|
35
|
+
set width(value: number);
|
|
36
|
+
/**
|
|
37
|
+
* @description 高度
|
|
38
|
+
*/
|
|
39
|
+
get height(): number;
|
|
40
|
+
set height(value: number);
|
|
41
|
+
/**
|
|
42
|
+
* @description 旋转(二维旋转角度)
|
|
43
|
+
*/
|
|
44
|
+
get rotation(): number;
|
|
45
|
+
set rotation(value: number);
|
|
46
|
+
/**
|
|
47
|
+
* @description 完整旋转(包含 x, y, z)
|
|
48
|
+
*/
|
|
49
|
+
get fullRotation(): [number, number, number];
|
|
50
|
+
set fullRotation(value: [number, number, number]);
|
|
51
|
+
/**
|
|
52
|
+
* @description 是否正在编辑关键属性
|
|
53
|
+
* @deprecated 该属性即将废弃,使用 isCoreEditable 代替
|
|
54
|
+
*/
|
|
55
|
+
get keyPropertyEditing(): boolean;
|
|
56
|
+
set keyPropertyEditing(value: boolean);
|
|
57
|
+
/**
|
|
58
|
+
* @description 转换为 EffectsCreateInfo
|
|
59
|
+
* @param withParent 是否包含父节点ID
|
|
60
|
+
*/
|
|
61
|
+
toCreateInfo(withParent?: boolean): EffectsCreateInfo;
|
|
62
|
+
/**
|
|
63
|
+
* @description 克隆 SDKItem
|
|
64
|
+
*/
|
|
65
|
+
clone(): EffectsItem;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* @description 类型守卫:检查是否是 EffectsItem
|
|
69
|
+
*/
|
|
70
|
+
export declare function isEffectsItem(obj: any): obj is EffectsItem;
|