@galacean/effects-core 1.3.1 → 1.4.0-beta.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/index.js +2807 -2374
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2802 -2371
- package/dist/index.mjs.map +1 -1
- package/dist/math/bezier.d.ts +84 -0
- package/dist/math/keyframe-info.d.ts +39 -0
- package/dist/math/utils.d.ts +6 -2
- package/dist/math/value-getter.d.ts +32 -31
- package/dist/plugins/particle/particle-loader.d.ts +1 -1
- package/dist/plugins/particle/particle-mesh.d.ts +4 -3
- package/dist/plugins/particle/particle-vfx-item.d.ts +1 -0
- package/dist/plugins/particle/trail-mesh.d.ts +3 -3
- package/dist/semantic-map.d.ts +1 -1
- package/dist/shader/index.d.ts +0 -1
- package/package.json +2 -2
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type * as spec from '@galacean/effects-specification';
|
|
2
|
+
import { Vector2 } from '@galacean/effects-math/es/core/vector2';
|
|
3
|
+
import { Vector3 } from '@galacean/effects-math/es/core/vector3';
|
|
4
|
+
export declare class BezierLengthData {
|
|
5
|
+
points: Array<{
|
|
6
|
+
partialLength: number;
|
|
7
|
+
point: Vector3;
|
|
8
|
+
}>;
|
|
9
|
+
totalLength: number;
|
|
10
|
+
constructor(points: Array<{
|
|
11
|
+
partialLength: number;
|
|
12
|
+
point: Vector3;
|
|
13
|
+
}>, totalLength: number);
|
|
14
|
+
}
|
|
15
|
+
export declare const BezierMap: Record<string, BezierEasing>;
|
|
16
|
+
export declare const BezierDataMap: Record<string, BezierLengthData>;
|
|
17
|
+
/**
|
|
18
|
+
* @param p1 起始点
|
|
19
|
+
* @param p2 终点
|
|
20
|
+
* @param p3 起始控制点
|
|
21
|
+
* @param p4 终止控制点
|
|
22
|
+
* @returns
|
|
23
|
+
*/
|
|
24
|
+
export declare function buildBezierData(p1: Vector3, p2: Vector3, p3: Vector3, p4: Vector3): {
|
|
25
|
+
data: BezierLengthData;
|
|
26
|
+
interval: Vector3;
|
|
27
|
+
};
|
|
28
|
+
export declare class BezierPath {
|
|
29
|
+
p1: Vector3;
|
|
30
|
+
p2: Vector3;
|
|
31
|
+
p3: Vector3;
|
|
32
|
+
p4: Vector3;
|
|
33
|
+
readonly lengthData: BezierLengthData;
|
|
34
|
+
readonly interval: Vector3;
|
|
35
|
+
readonly totalLength: number;
|
|
36
|
+
private catching;
|
|
37
|
+
constructor(p1: Vector3, p2: Vector3, p3: Vector3, p4: Vector3);
|
|
38
|
+
/**
|
|
39
|
+
* 获取路径在指定比例长度上点的坐标
|
|
40
|
+
* @param percent 路径长度的比例
|
|
41
|
+
*/
|
|
42
|
+
getPointInPercent(percent: number): Vector3;
|
|
43
|
+
}
|
|
44
|
+
export declare class BezierEasing {
|
|
45
|
+
mX1: number;
|
|
46
|
+
mY1: number;
|
|
47
|
+
mX2: number;
|
|
48
|
+
mY2: number;
|
|
49
|
+
private precomputed;
|
|
50
|
+
private mSampleValues;
|
|
51
|
+
constructor(mX1: number, mY1: number, mX2: number, mY2: number);
|
|
52
|
+
precompute(): void;
|
|
53
|
+
getValue(x: number): number;
|
|
54
|
+
calcSampleValues(): void;
|
|
55
|
+
getTForX(aX: number): number;
|
|
56
|
+
}
|
|
57
|
+
export declare function buildEasingCurve(leftKeyframe: spec.BezierKeyframeValue, rightKeyframe: spec.BezierKeyframeValue): {
|
|
58
|
+
points: Vector2[];
|
|
59
|
+
timeInterval: number;
|
|
60
|
+
valueInterval: number;
|
|
61
|
+
curve: BezierEasing;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* 根据关键帧类型获取贝塞尔曲线上的关键点
|
|
65
|
+
*/
|
|
66
|
+
export declare function getControlPoints(leftKeyframe: spec.BezierKeyframeValue, rightKeyframe: spec.BezierKeyframeValue, lineToBezier: boolean): ({
|
|
67
|
+
type: 'ease';
|
|
68
|
+
p0: Vector2;
|
|
69
|
+
p1: Vector2;
|
|
70
|
+
p2: Vector2;
|
|
71
|
+
p3: Vector2;
|
|
72
|
+
isHold?: boolean;
|
|
73
|
+
leftHoldLine?: boolean;
|
|
74
|
+
rightHoldLine?: boolean;
|
|
75
|
+
} | {
|
|
76
|
+
type: 'line';
|
|
77
|
+
p0: Vector2;
|
|
78
|
+
p1: Vector2;
|
|
79
|
+
p2?: Vector2;
|
|
80
|
+
p3?: Vector2;
|
|
81
|
+
isHold?: boolean;
|
|
82
|
+
leftHoldLine?: boolean;
|
|
83
|
+
rightHoldLine?: boolean;
|
|
84
|
+
});
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Vector2 } from '@galacean/effects-math/es/core/vector2';
|
|
2
|
+
import * as spec from '@galacean/effects-specification';
|
|
3
|
+
export declare const keyframeInfo: {
|
|
4
|
+
/**
|
|
5
|
+
* 根据不同关键帧类型,获取位于曲线上的点
|
|
6
|
+
*/
|
|
7
|
+
getPointInCurve(keyframe: spec.BezierKeyframeValue): Vector2;
|
|
8
|
+
/**
|
|
9
|
+
* 根据不同关键帧类型,获取位于曲线上的点的索引
|
|
10
|
+
*/
|
|
11
|
+
getPointIndexInCurve(keyframe: spec.BezierKeyframeValue): {
|
|
12
|
+
xIndex: number;
|
|
13
|
+
yIndex: number;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* 关键帧左侧是否为缓动类型(否则为线段)
|
|
17
|
+
*/
|
|
18
|
+
isLeftSideEase(keyframe: spec.BezierKeyframeValue): keyframe is spec.EaseKeyframeValue | spec.EaseInKeyframeValue | spec.EaseHoldOutKeyframeValue;
|
|
19
|
+
/**
|
|
20
|
+
* 关键帧右侧是否为缓动类型(否则为线段)
|
|
21
|
+
*/
|
|
22
|
+
isRightSideEase(keyframe: spec.BezierKeyframeValue): keyframe is spec.EaseKeyframeValue | spec.EaseOutKeyframeValue | spec.EaseHoldInKeyframeValue;
|
|
23
|
+
/**
|
|
24
|
+
* 关键帧左侧是否为缓动类型(否则为线段)
|
|
25
|
+
*/
|
|
26
|
+
isKeyframeTypeLeftSideEase(keyframeType: spec.BezierKeyframeType): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* 关键帧右侧是否为缓动类型(否则为线段)
|
|
29
|
+
*/
|
|
30
|
+
isKeyframeTypeRightSideEase(keyframeType: spec.BezierKeyframeType): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* 是否为定格进关键帧
|
|
33
|
+
*/
|
|
34
|
+
isHoldInKeyframe(keyframe: spec.BezierKeyframeValue): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* 是否为定格出关键帧
|
|
37
|
+
*/
|
|
38
|
+
isHoldOutKeyframe(keyframe: spec.BezierKeyframeValue): boolean;
|
|
39
|
+
};
|
package/dist/math/utils.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as spec from '@galacean/effects-specification';
|
|
2
2
|
import type { vec2, vec3, vec4 } from '@galacean/effects-specification';
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
3
|
+
import { Vector3 } from '@galacean/effects-math/es/core/vector3';
|
|
4
|
+
import { Ray } from '@galacean/effects-math/es/core/ray';
|
|
5
|
+
import type { TriangleLike } from '@galacean/effects-math/es/core/type';
|
|
5
6
|
import type { Camera } from '../camera';
|
|
6
7
|
export type vec = number[];
|
|
7
8
|
export declare function ensureVec3(num?: any): vec3;
|
|
@@ -17,3 +18,6 @@ export declare function convertAnchor(anchor?: vec2, particleOrigin?: spec.Parti
|
|
|
17
18
|
export declare function nearestPowerOfTwo(value: number): number;
|
|
18
19
|
export declare function setRayFromCamera(x: number, y: number, camera: Camera): Ray;
|
|
19
20
|
export declare function trianglesFromRect(position: Vector3, halfWidth: number, halfHeight: number): TriangleLike[];
|
|
21
|
+
export declare function decimalEqual(a: number, b: number, epsilon?: number): boolean;
|
|
22
|
+
export declare function numberToFix(a: number, fixed?: number): number;
|
|
23
|
+
export declare function pointOnLine(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): boolean;
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
import type { Vector2 } from '@galacean/effects-math/es/core/vector2';
|
|
2
|
+
import { Vector3 } from '@galacean/effects-math/es/core/vector3';
|
|
1
3
|
import * as spec from '@galacean/effects-specification';
|
|
2
4
|
import type { ColorStop } from '../utils';
|
|
5
|
+
import type { BezierEasing } from './bezier';
|
|
6
|
+
import { BezierPath } from './bezier';
|
|
3
7
|
interface KeyFrameMeta {
|
|
4
8
|
curves: ValueGetter<any>[];
|
|
5
9
|
index: number;
|
|
@@ -8,6 +12,7 @@ interface KeyFrameMeta {
|
|
|
8
12
|
curveCount: number;
|
|
9
13
|
}
|
|
10
14
|
export declare class ValueGetter<T> {
|
|
15
|
+
static getAllData(meta: KeyFrameMeta, halfFloat?: boolean): Uint16Array | Float32Array;
|
|
11
16
|
constructor(arg: any);
|
|
12
17
|
onCreate(props: any): void;
|
|
13
18
|
getIntegrateValue(t0: number, t1: number, timeScale?: number): T;
|
|
@@ -16,6 +21,7 @@ export declare class ValueGetter<T> {
|
|
|
16
21
|
toUniform(meta: KeyFrameMeta): Float32Array;
|
|
17
22
|
map(func: (n: T) => T): void;
|
|
18
23
|
scaleXCoord(scale: number): ValueGetter<T>;
|
|
24
|
+
toData(): ArrayLike<number>;
|
|
19
25
|
}
|
|
20
26
|
export declare class StaticValue extends ValueGetter<number> {
|
|
21
27
|
private value;
|
|
@@ -65,28 +71,6 @@ export declare class GradientValue extends ValueGetter<number[]> {
|
|
|
65
71
|
getStops(): ColorStop[];
|
|
66
72
|
getValue(time: number): number[];
|
|
67
73
|
}
|
|
68
|
-
export type KeyFrame = {
|
|
69
|
-
inTangent: number;
|
|
70
|
-
outTangent: number;
|
|
71
|
-
time: number;
|
|
72
|
-
value: number;
|
|
73
|
-
};
|
|
74
|
-
export declare class CurveValue extends ValueGetter<number> {
|
|
75
|
-
keys: KeyFrame[] | number[][];
|
|
76
|
-
min: number;
|
|
77
|
-
dist: number;
|
|
78
|
-
isCurveValue: boolean;
|
|
79
|
-
static getAllData(meta: KeyFrameMeta, halfFloat?: boolean): Uint16Array | Float32Array;
|
|
80
|
-
onCreate(props: number[] & number[][]): void;
|
|
81
|
-
getValue(time: number): number;
|
|
82
|
-
getIntegrateByTime(t0: number, t1: number): number;
|
|
83
|
-
getIntegrateValue(t0: number, t1: number, ts: number): number;
|
|
84
|
-
integrate(time: number, byTime: boolean): number;
|
|
85
|
-
toData(): Float32Array;
|
|
86
|
-
toUniform(meta: any): Float32Array;
|
|
87
|
-
map(func: (num: number) => number): this;
|
|
88
|
-
scaleXCoord(scale: number): this;
|
|
89
|
-
}
|
|
90
74
|
export declare class LineSegments extends ValueGetter<number> {
|
|
91
75
|
isLineSeg: boolean;
|
|
92
76
|
keys: number[][];
|
|
@@ -103,17 +87,34 @@ export declare class LineSegments extends ValueGetter<number> {
|
|
|
103
87
|
map(func: (k: number) => number): this;
|
|
104
88
|
scaleXCoord(scale: number): this;
|
|
105
89
|
}
|
|
106
|
-
export declare class
|
|
90
|
+
export declare class BezierCurve extends ValueGetter<number> {
|
|
91
|
+
curveMap: Record<string, {
|
|
92
|
+
points: Vector2[];
|
|
93
|
+
timeInterval: number;
|
|
94
|
+
valueInterval: number;
|
|
95
|
+
curve: BezierEasing;
|
|
96
|
+
}>;
|
|
107
97
|
keys: number[][];
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
98
|
+
onCreate(props: spec.BezierKeyframeValue[]): void;
|
|
99
|
+
getValue(time: number): number;
|
|
100
|
+
getIntegrateValue(t0: number, t1: number, ts?: number): number;
|
|
101
|
+
getIntegrateByTime(t0: number, t1: number): number;
|
|
102
|
+
getCurveIntegrateValue(curveKey: string, time: number): number;
|
|
103
|
+
getCurveValue(curveKey: string, time: number): number;
|
|
104
|
+
toUniform(meta: KeyFrameMeta): Float32Array;
|
|
105
|
+
toData(): Float32Array;
|
|
112
106
|
}
|
|
113
|
-
export declare class
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
107
|
+
export declare class BezierCurvePath extends ValueGetter<Vector3> {
|
|
108
|
+
curveSegments: Record<string, {
|
|
109
|
+
points: Vector2[];
|
|
110
|
+
easingCurve: BezierEasing;
|
|
111
|
+
timeInterval: number;
|
|
112
|
+
valueInterval: number;
|
|
113
|
+
pathCurve: BezierPath;
|
|
114
|
+
}>;
|
|
115
|
+
onCreate(props: spec.BezierCurvePathValue): void;
|
|
116
|
+
getValue(time: number): Vector3;
|
|
117
|
+
getPercValue(curveKey: string, time: number): number;
|
|
117
118
|
}
|
|
118
119
|
export declare function createValueGetter(args: any): ValueGetter<any>;
|
|
119
120
|
export declare function getKeyFrameMetaByRawValue(meta: KeyFrameMeta, value?: [type: spec.ValueType, value: any]): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as spec from '@galacean/effects-specification';
|
|
1
|
+
import type * as spec from '@galacean/effects-specification';
|
|
2
2
|
import type { Composition } from '../../composition';
|
|
3
3
|
import type { Renderer, RenderFrame } from '../../render';
|
|
4
4
|
import { type VFXItem } from '../../vfx-item';
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type * as spec from '@galacean/effects-specification';
|
|
2
|
-
import type { Matrix4 } from '@galacean/effects-math/es/core/
|
|
3
|
-
import { Vector2
|
|
2
|
+
import type { Matrix4 } from '@galacean/effects-math/es/core/matrix4';
|
|
3
|
+
import { Vector2 } from '@galacean/effects-math/es/core/vector2';
|
|
4
|
+
import { Vector3 } from '@galacean/effects-math/es/core/vector3';
|
|
4
5
|
import type { Composition } from '../../composition';
|
|
5
|
-
import
|
|
6
|
+
import { ValueGetter } from '../../math';
|
|
6
7
|
import type { SharedShaderWithSource, GPUCapability } from '../../render';
|
|
7
8
|
import { Geometry, Mesh } from '../../render';
|
|
8
9
|
import { Texture } from '../../texture';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type * as spec from '@galacean/effects-specification';
|
|
2
2
|
import type { vec4, GradientStop } from '@galacean/effects-specification';
|
|
3
|
-
import { Vector3 } from '@galacean/effects-math/es/core/
|
|
4
|
-
import type { Matrix4 } from '@galacean/effects-math/es/core/
|
|
3
|
+
import { Vector3 } from '@galacean/effects-math/es/core/vector3';
|
|
4
|
+
import type { Matrix4 } from '@galacean/effects-math/es/core/matrix4';
|
|
5
|
+
import { ValueGetter } from '../../math';
|
|
5
6
|
import type { ShaderWithSource, GPUCapability } from '../../render';
|
|
6
7
|
import { Geometry, Mesh } from '../../render';
|
|
7
8
|
import { Texture } from '../../texture';
|
|
8
9
|
import type { Engine } from '../../engine';
|
|
9
|
-
import type { ValueGetter } from '../../math';
|
|
10
10
|
export type TrailMeshConstructor = {
|
|
11
11
|
maxTrailCount: number;
|
|
12
12
|
pointCountPerTrail: number;
|
package/dist/semantic-map.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export declare class SemanticMap implements Disposable {
|
|
|
8
8
|
constructor(semantics?: Record<string, SemanticGetter>);
|
|
9
9
|
toObject(): Record<string, SemanticGetter>;
|
|
10
10
|
setSemantic(name: string, value?: SemanticGetter): void;
|
|
11
|
-
getSemanticValue(name: string, state: RenderingData): number | Float32Array | Int32Array | Float64Array | Uint8Array | Uint32Array | Uint16Array | Int8Array | Int16Array | number[] | number[][] | import("@galacean/effects-math/es").
|
|
11
|
+
getSemanticValue(name: string, state: RenderingData): number | Float32Array | Int32Array | Float64Array | Uint8Array | Uint32Array | Uint16Array | Int8Array | Int16Array | number[] | number[][] | import("@galacean/effects-math/es").Vector2 | import("@galacean/effects-math/es").Vector3 | import("@galacean/effects-math/es").Matrix4 | import("./texture").Texture | import("@galacean/effects-math/es").Vector4 | import("@galacean/effects-math/es").Matrix3 | import("./texture").Texture[] | import("./material").UniformStruct | import("./material").UniformStruct[] | SemanticFunc | undefined;
|
|
12
12
|
hasSemanticValue(name: string): boolean;
|
|
13
13
|
dispose(): void;
|
|
14
14
|
}
|
package/dist/shader/index.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ export { default as compatibleVert } from './compatible.vert.glsl';
|
|
|
4
4
|
export { default as itemFrameFrag } from './item-frame.frag.glsl';
|
|
5
5
|
export { default as integrate } from './integrate.glsl';
|
|
6
6
|
export { default as itemVert } from './item.vert.glsl';
|
|
7
|
-
export { default as itemDefine } from './item.define.glsl';
|
|
8
7
|
export { default as itemFrag } from './item.frag.glsl';
|
|
9
8
|
export { default as particleFrag } from './particle.frag.glsl';
|
|
10
9
|
export { default as particleVert } from './particle.vert.glsl';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@galacean/effects-core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0-beta.1",
|
|
4
4
|
"description": "Galacean Effects runtime core for the web",
|
|
5
5
|
"module": "./dist/index.mjs",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"registry": "https://registry.npmjs.org"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@galacean/effects-specification": "1.
|
|
45
|
+
"@galacean/effects-specification": "1.2.0-beta.0",
|
|
46
46
|
"@galacean/effects-math": "1.0.1"
|
|
47
47
|
},
|
|
48
48
|
"scripts": {
|