@galacean/effects-specification 2.0.0-alpha.7 → 2.0.0-alpha.9
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/fallback/migration.d.ts +6 -1
- package/dist/fallback/utils.d.ts +3 -2
- package/dist/fallback.js +158 -14
- package/dist/fallback.js.map +1 -1
- package/dist/fallback.mjs +158 -15
- package/dist/fallback.mjs.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +11 -2
- package/dist/index.mjs.map +1 -1
- package/dist/src/buitin-object-guid.d.ts +5 -0
- package/dist/src/components.d.ts +1 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/scene.d.ts +2 -1
- package/package.json +1 -1
package/dist/fallback.mjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Name: @galacean/effects-specification
|
|
3
3
|
* Description: Galacean Effects JSON Specification
|
|
4
4
|
* Author: Ant Group CO., Ltd.
|
|
5
|
-
* Version: v2.0.0-alpha.
|
|
5
|
+
* Version: v2.0.0-alpha.9
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
/******************************************************************************
|
|
@@ -922,15 +922,27 @@ function ensureFixedNumber(a) {
|
|
|
922
922
|
return [ValueType.CONSTANT, a];
|
|
923
923
|
}
|
|
924
924
|
if (a) {
|
|
925
|
-
|
|
925
|
+
var valueType = a[0];
|
|
926
|
+
var valueData = a[1];
|
|
927
|
+
if (Array.isArray(valueType)) {
|
|
928
|
+
// 没有数据类型的数据
|
|
929
|
+
return;
|
|
930
|
+
}
|
|
931
|
+
if (valueType === 'static' || valueType === ValueType.CONSTANT) {
|
|
932
|
+
return [ValueType.CONSTANT, a[1]];
|
|
933
|
+
}
|
|
934
|
+
if (valueType === 'lines') {
|
|
926
935
|
return [ValueType.LINE, a[1]];
|
|
927
936
|
}
|
|
928
|
-
if (
|
|
929
|
-
|
|
937
|
+
if (valueType === ValueType.LINE) {
|
|
938
|
+
// @ts-expect-error
|
|
939
|
+
var keyframes = valueData.map(function (data) { return [BezierKeyframeType.LINE, data]; });
|
|
940
|
+
return [ValueType.BEZIER_CURVE, keyframes];
|
|
930
941
|
}
|
|
931
|
-
if (
|
|
932
|
-
return [ValueType.
|
|
942
|
+
if (valueType === 'curve' || valueType === ValueType.CURVE) {
|
|
943
|
+
return [ValueType.BEZIER_CURVE, getBezierCurveFromHermiteInGE(valueData)];
|
|
933
944
|
}
|
|
945
|
+
return a;
|
|
934
946
|
}
|
|
935
947
|
}
|
|
936
948
|
function ensureFixedNumberWithRandom(a, p) {
|
|
@@ -956,6 +968,7 @@ function ensureColorExpression(a, normalized) {
|
|
|
956
968
|
else if (a[0] === 'color') {
|
|
957
969
|
return [ValueType.RGBA_COLOR, colorToArr(a[1], normalized)];
|
|
958
970
|
}
|
|
971
|
+
return a;
|
|
959
972
|
}
|
|
960
973
|
}
|
|
961
974
|
function ensureNumberExpression(a) {
|
|
@@ -1023,6 +1036,9 @@ function parsePercent(c) {
|
|
|
1023
1036
|
}
|
|
1024
1037
|
function getGradientColor(color, normalized) {
|
|
1025
1038
|
if (Array.isArray(color)) {
|
|
1039
|
+
if (color[0] === ValueType.GRADIENT_COLOR) {
|
|
1040
|
+
return color;
|
|
1041
|
+
}
|
|
1026
1042
|
// @ts-expect-error
|
|
1027
1043
|
return (color[0] === 'gradient' || color[0] === 'color') && ensureGradient(color[1], normalized);
|
|
1028
1044
|
}
|
|
@@ -1035,12 +1051,36 @@ function ensureFixedVec3(a) {
|
|
|
1035
1051
|
if (a.length === 3) {
|
|
1036
1052
|
return [ValueType.CONSTANT_VEC3, a];
|
|
1037
1053
|
}
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1054
|
+
var valueType = a[0];
|
|
1055
|
+
if (valueType === 'path' ||
|
|
1056
|
+
valueType === 'bezier' ||
|
|
1057
|
+
valueType === ValueType.BEZIER_PATH ||
|
|
1058
|
+
valueType === ValueType.LINEAR_PATH) {
|
|
1059
|
+
var valueData = a[1];
|
|
1060
|
+
var easing = valueData[0];
|
|
1061
|
+
var points = valueData[1];
|
|
1062
|
+
var controlPoints = valueData[2];
|
|
1063
|
+
var bezierEasing = getBezierCurveFromHermiteInGE(easing);
|
|
1064
|
+
// linear path没有controlPoints
|
|
1065
|
+
if (!controlPoints) {
|
|
1066
|
+
controlPoints = [];
|
|
1067
|
+
for (var keyframeIndex = 0; keyframeIndex < points.length; keyframeIndex++) {
|
|
1068
|
+
var point = points[keyframeIndex].slice();
|
|
1069
|
+
if (keyframeIndex === 0) {
|
|
1070
|
+
controlPoints.push(point);
|
|
1071
|
+
}
|
|
1072
|
+
else if (keyframeIndex < points.length - 1) {
|
|
1073
|
+
controlPoints.push(point);
|
|
1074
|
+
controlPoints.push(point);
|
|
1075
|
+
}
|
|
1076
|
+
else {
|
|
1077
|
+
controlPoints.push(point);
|
|
1078
|
+
}
|
|
1079
|
+
}
|
|
1080
|
+
}
|
|
1081
|
+
return [ValueType.BEZIER_CURVE_PATH, [bezierEasing, points, controlPoints]];
|
|
1043
1082
|
}
|
|
1083
|
+
return a;
|
|
1044
1084
|
}
|
|
1045
1085
|
}
|
|
1046
1086
|
function objectValueToNumber(o) {
|
|
@@ -1158,6 +1198,50 @@ var particleOriginTranslateMap = (_a = {},
|
|
|
1158
1198
|
_a[ParticleOrigin.PARTICLE_ORIGIN_RIGHT_BOTTOM] = [0.5, -0.5],
|
|
1159
1199
|
_a[ParticleOrigin.PARTICLE_ORIGIN_RIGHT_TOP] = [0.5, 0.5],
|
|
1160
1200
|
_a);
|
|
1201
|
+
function getBezierCurveFromHermite(m0, m1, p0, p3) {
|
|
1202
|
+
var xStart = p0[0];
|
|
1203
|
+
var yStart = p0[1];
|
|
1204
|
+
var xEnd = p3[0];
|
|
1205
|
+
var yEnd = p3[1];
|
|
1206
|
+
var dt = xEnd - xStart;
|
|
1207
|
+
m0 = m0 * dt;
|
|
1208
|
+
m1 = m1 * dt;
|
|
1209
|
+
var bezierControlPoints = [[xStart + (xEnd - xStart) / 3, yStart + m0 / 3], [xEnd - (xEnd - xStart) / 3, yEnd - m1 / 3]];
|
|
1210
|
+
return bezierControlPoints;
|
|
1211
|
+
}
|
|
1212
|
+
function getBezierCurveFromHermiteInGE(geHermiteCurves) {
|
|
1213
|
+
var ymax = -1000000;
|
|
1214
|
+
var ymin = 1000000;
|
|
1215
|
+
for (var i = 0; i < geHermiteCurves.length; i++) {
|
|
1216
|
+
ymax = Math.max(ymax, geHermiteCurves[i][1]);
|
|
1217
|
+
ymin = Math.min(ymin, geHermiteCurves[i][1]);
|
|
1218
|
+
}
|
|
1219
|
+
var geBezierCurves = [[geHermiteCurves[0][0], geHermiteCurves[0][1]]];
|
|
1220
|
+
for (var i = 0; i < geHermiteCurves.length - 1; i++) {
|
|
1221
|
+
var m0 = geHermiteCurves[i][3] * (ymax - ymin);
|
|
1222
|
+
var m1 = geHermiteCurves[i + 1][2] * (ymax - ymin);
|
|
1223
|
+
var p0 = [geHermiteCurves[i][0], geHermiteCurves[i][1]];
|
|
1224
|
+
var p3 = [geHermiteCurves[i + 1][0], geHermiteCurves[i + 1][1]];
|
|
1225
|
+
if (p0[0] != p3[0]) {
|
|
1226
|
+
var bezierControlPoints = getBezierCurveFromHermite(m0, m1, p0, p3);
|
|
1227
|
+
var p1 = bezierControlPoints[0];
|
|
1228
|
+
var p2 = bezierControlPoints[1];
|
|
1229
|
+
geBezierCurves[geBezierCurves.length - 1].push(p1[0]);
|
|
1230
|
+
geBezierCurves[geBezierCurves.length - 1].push(p1[1]);
|
|
1231
|
+
geBezierCurves.push([p2[0], p2[1], p3[0], p3[1]]);
|
|
1232
|
+
}
|
|
1233
|
+
else {
|
|
1234
|
+
geBezierCurves[geBezierCurves.length - 1].push(p3[0]);
|
|
1235
|
+
geBezierCurves[geBezierCurves.length - 1].push(p3[1]);
|
|
1236
|
+
}
|
|
1237
|
+
}
|
|
1238
|
+
// 添加关键帧类型
|
|
1239
|
+
return geBezierCurves.map(function (curve, index) {
|
|
1240
|
+
return index === 0 ? [BezierKeyframeType.EASE_OUT, curve]
|
|
1241
|
+
: index === geBezierCurves.length - 1 ? [BezierKeyframeType.EASE_IN, curve]
|
|
1242
|
+
: [BezierKeyframeType.EASE, curve];
|
|
1243
|
+
});
|
|
1244
|
+
}
|
|
1161
1245
|
|
|
1162
1246
|
function getStandardParticleContent(particle) {
|
|
1163
1247
|
var _a;
|
|
@@ -1783,12 +1867,66 @@ function version30Migration(json) {
|
|
|
1783
1867
|
result.version = '3.0';
|
|
1784
1868
|
return result;
|
|
1785
1869
|
}
|
|
1870
|
+
/**
|
|
1871
|
+
* 2.5 以下版本 赫尔米特数据转换成贝塞尔数据
|
|
1872
|
+
*/
|
|
1873
|
+
function version24Migration(json) {
|
|
1874
|
+
// 曲线转换成贝塞尔
|
|
1875
|
+
json.compositions.map(function (comp) {
|
|
1876
|
+
var e_4, _a;
|
|
1877
|
+
try {
|
|
1878
|
+
for (var _b = __values(comp.items), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
1879
|
+
var item = _c.value;
|
|
1880
|
+
convertParam(item.content);
|
|
1881
|
+
}
|
|
1882
|
+
}
|
|
1883
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
1884
|
+
finally {
|
|
1885
|
+
try {
|
|
1886
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
1887
|
+
}
|
|
1888
|
+
finally { if (e_4) throw e_4.error; }
|
|
1889
|
+
}
|
|
1890
|
+
});
|
|
1891
|
+
return json;
|
|
1892
|
+
}
|
|
1893
|
+
function convertParam(content) {
|
|
1894
|
+
var e_5, _a;
|
|
1895
|
+
if (!content) {
|
|
1896
|
+
return;
|
|
1897
|
+
}
|
|
1898
|
+
try {
|
|
1899
|
+
for (var _b = __values(Object.keys(content)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
1900
|
+
var key = _c.value;
|
|
1901
|
+
var value = content[key];
|
|
1902
|
+
var isArray = Array.isArray(value);
|
|
1903
|
+
if (isArray && value.length === 2 && Array.isArray(value[1])) {
|
|
1904
|
+
if (key === 'path') {
|
|
1905
|
+
content[key] = ensureFixedVec3(value);
|
|
1906
|
+
}
|
|
1907
|
+
else {
|
|
1908
|
+
content[key] = ensureFixedNumber(value);
|
|
1909
|
+
}
|
|
1910
|
+
}
|
|
1911
|
+
else if (!isArray && typeof value === 'object') {
|
|
1912
|
+
convertParam(value);
|
|
1913
|
+
}
|
|
1914
|
+
}
|
|
1915
|
+
}
|
|
1916
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
1917
|
+
finally {
|
|
1918
|
+
try {
|
|
1919
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
1920
|
+
}
|
|
1921
|
+
finally { if (e_5) throw e_5.error; }
|
|
1922
|
+
}
|
|
1923
|
+
}
|
|
1786
1924
|
|
|
1787
1925
|
var v0 = /^(\d+)\.(\d+)\.(\d+)(-(\w+)\.\d+)?$/;
|
|
1788
1926
|
var standardVersion = /^(\d+)\.(\d+)$/;
|
|
1789
1927
|
var reverseParticle = false;
|
|
1790
1928
|
function getStandardJSON(json) {
|
|
1791
|
-
var _a
|
|
1929
|
+
var _a;
|
|
1792
1930
|
if (!json || typeof json !== 'object') {
|
|
1793
1931
|
throw Error('expect a json object');
|
|
1794
1932
|
}
|
|
@@ -1798,9 +1936,14 @@ function getStandardJSON(json) {
|
|
|
1798
1936
|
reverseParticle = ((_a = (/^(\d+)/).exec(json.version)) === null || _a === void 0 ? void 0 : _a[0]) === '0';
|
|
1799
1937
|
return version30Migration(version21Migration(getStandardJSONFromV0(json)));
|
|
1800
1938
|
}
|
|
1801
|
-
var
|
|
1939
|
+
var vs = standardVersion.exec(json.version) || [];
|
|
1940
|
+
var mainVersion = Number(vs[1]);
|
|
1941
|
+
var minorVersion = Number(vs[2]);
|
|
1802
1942
|
if (mainVersion) {
|
|
1803
|
-
if (
|
|
1943
|
+
if (mainVersion < 2 || (mainVersion === 2 && minorVersion < 4)) {
|
|
1944
|
+
json = version24Migration(json);
|
|
1945
|
+
}
|
|
1946
|
+
if (mainVersion < 3) {
|
|
1804
1947
|
return version30Migration(version21Migration(json));
|
|
1805
1948
|
}
|
|
1806
1949
|
return json;
|
|
@@ -2061,5 +2204,5 @@ function getStandardItem(item, opt) {
|
|
|
2061
2204
|
}
|
|
2062
2205
|
}
|
|
2063
2206
|
|
|
2064
|
-
export { arrAdd, colorToArr, convertAnchor, deleteEmptyValue, ensureColorExpression, ensureFixedNumber, ensureFixedNumberWithRandom, ensureFixedVec3, ensureGradient, ensureNumberExpression, ensureRGBAValue, ensureValueGetter, forEach, generateGUID, getGradientColor, getStandardComposition, getStandardImage, getStandardItem, getStandardJSON, normalizeColor, objectValueToNumber, parsePercent, particleOriginTranslateMap, quatFromXYZRotation, rotationZYXFromQuat };
|
|
2207
|
+
export { arrAdd, colorToArr, convertAnchor, deleteEmptyValue, ensureColorExpression, ensureFixedNumber, ensureFixedNumberWithRandom, ensureFixedVec3, ensureGradient, ensureNumberExpression, ensureRGBAValue, ensureValueGetter, forEach, generateGUID, getBezierCurveFromHermiteInGE, getGradientColor, getStandardComposition, getStandardImage, getStandardItem, getStandardJSON, normalizeColor, objectValueToNumber, parsePercent, particleOriginTranslateMap, quatFromXYZRotation, rotationZYXFromQuat };
|
|
2065
2208
|
//# sourceMappingURL=fallback.mjs.map
|