@galacean/effects-core 2.5.0-alpha.6 → 2.5.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.mjs CHANGED
@@ -3,7 +3,7 @@
3
3
  * Description: Galacean Effects runtime core for the web
4
4
  * Author: Ant Group CO., Ltd.
5
5
  * Contributors: 燃然,飂兮,十弦,云垣,茂安,意绮
6
- * Version: v2.5.0-alpha.6
6
+ * Version: v2.5.1
7
7
  */
8
8
 
9
9
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
@@ -14166,40 +14166,60 @@ var BezierQuat = /*#__PURE__*/ function() {
14166
14166
  return BezierQuat;
14167
14167
  }();
14168
14168
  var BezierEasing = /*#__PURE__*/ function() {
14169
- function BezierEasing(mX1, mY1, mX2, mY2) {
14170
- this.mX1 = mX1;
14171
- this.mY1 = mY1;
14172
- this.mX2 = mX2;
14173
- this.mY2 = mY2;
14169
+ function BezierEasing(control1YOrControl1X, control2YOrControl1Y, control2X, control2Y) {
14174
14170
  this.precomputed = false;
14171
+ this.control1 = new Vector2();
14172
+ this.control2 = new Vector2();
14173
+ this.weighted = false;
14174
+ this.isConstant = false;
14175
14175
  this.mSampleValues = new Array(kSplineTableSize);
14176
+ if (control1YOrControl1X !== undefined && control2YOrControl1Y !== undefined && control2X !== undefined && control2Y !== undefined) {
14177
+ this.control1.x = control1YOrControl1X;
14178
+ this.control1.y = control2YOrControl1Y;
14179
+ this.control2.x = control2X;
14180
+ this.control2.y = control2Y;
14181
+ this.weighted = true;
14182
+ } else if (control1YOrControl1X !== undefined && control2YOrControl1Y !== undefined) {
14183
+ this.control1.x = 1 / 3;
14184
+ this.control1.y = control1YOrControl1X;
14185
+ this.control2.x = 2 / 3;
14186
+ this.control2.y = control2YOrControl1Y;
14187
+ } else {
14188
+ this.isConstant = true;
14189
+ }
14176
14190
  }
14177
14191
  var _proto = BezierEasing.prototype;
14178
- _proto.precompute = function precompute() {
14179
- this.precomputed = true;
14180
- if (this.mX1 !== this.mY1 || this.mX2 !== this.mY2) {
14181
- this.calcSampleValues();
14182
- }
14183
- };
14184
14192
  _proto.getValue = function getValue(x) {
14185
- if (this.mX1 === this.mY1 && this.mX2 === this.mY2) {
14186
- return x;
14187
- }
14188
- if (isNaN(this.mY1) || isNaN(this.mY2)) {
14193
+ if (this.isConstant) {
14189
14194
  return 0;
14190
14195
  }
14196
+ if (this.control1.x === this.control1.y && this.control2.x === this.control2.y) {
14197
+ return x;
14198
+ }
14191
14199
  if (x === 0 || x === 1) {
14192
14200
  return x;
14193
14201
  }
14202
+ if (!this.weighted) {
14203
+ return this.bezierInterpolate(0, this.control1.y, this.control2.y, 1, x);
14204
+ }
14194
14205
  if (!this.precomputed) {
14195
14206
  this.precompute();
14196
14207
  }
14197
- var value = calcBezier(this.getTForX(x), this.mY1, this.mY2);
14208
+ var value = calcBezier(this.getTForX(x), this.control1.y, this.control2.y);
14198
14209
  return value;
14199
14210
  };
14211
+ _proto.bezierInterpolate = function bezierInterpolate(pStart, pControl1, pControl2, pEnd, t) {
14212
+ // Formula from Wikipedia article on Bezier curves
14213
+ var omt = 1.0 - t;
14214
+ var omt2 = omt * omt;
14215
+ var omt3 = omt2 * omt;
14216
+ var t2 = t * t;
14217
+ var t3 = t2 * t;
14218
+ return pStart * omt3 + pControl1 * omt2 * t * 3.0 + pControl2 * omt * t2 * 3.0 + pEnd * t3;
14219
+ };
14200
14220
  _proto.calcSampleValues = function calcSampleValues() {
14201
14221
  for(var i = 0; i < kSplineTableSize; ++i){
14202
- this.mSampleValues[i] = calcBezier(i * kSampleStepSize, this.mX1, this.mX2);
14222
+ this.mSampleValues[i] = calcBezier(i * kSampleStepSize, this.control1.x, this.control2.x);
14203
14223
  }
14204
14224
  };
14205
14225
  _proto.getTForX = function getTForX(aX) {
@@ -14212,14 +14232,20 @@ var BezierEasing = /*#__PURE__*/ function() {
14212
14232
  // Interpolate to provide an initial guess for t
14213
14233
  var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);
14214
14234
  var guessForT = intervalStart + dist * kSampleStepSize;
14215
- var initialSlope = getSlope(guessForT, this.mX1, this.mX2);
14235
+ var initialSlope = getSlope(guessForT, this.control1.x, this.control2.x);
14216
14236
  if (initialSlope >= NEWTON_MIN_SLOPE) {
14217
- return newtonRaphsonIterate(aX, guessForT, this.mX1, this.mX2);
14237
+ return newtonRaphsonIterate(aX, guessForT, this.control1.x, this.control2.x);
14218
14238
  }
14219
14239
  if (initialSlope === 0.0) {
14220
14240
  return guessForT;
14221
14241
  }
14222
- return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, this.mX1, this.mX2);
14242
+ return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, this.control1.x, this.control2.x);
14243
+ };
14244
+ _proto.precompute = function precompute() {
14245
+ this.precomputed = true;
14246
+ if (this.control1.x !== this.control1.y || this.control2.x !== this.control2.y) {
14247
+ this.calcSampleValues();
14248
+ }
14223
14249
  };
14224
14250
  return BezierEasing;
14225
14251
  }();
@@ -14778,148 +14804,6 @@ var LineSegments = /*#__PURE__*/ function(ValueGetter) {
14778
14804
  };
14779
14805
  return LineSegments;
14780
14806
  }(ValueGetter);
14781
- var BezierCurve = /*#__PURE__*/ function(ValueGetter) {
14782
- _inherits(BezierCurve, ValueGetter);
14783
- function BezierCurve() {
14784
- return ValueGetter.apply(this, arguments);
14785
- }
14786
- var _proto = BezierCurve.prototype;
14787
- _proto.onCreate = function onCreate(props) {
14788
- var keyframes = props;
14789
- this.curveMap = {};
14790
- this.keys = [];
14791
- for(var i = 0; i < keyframes.length - 1; i++){
14792
- var leftKeyframe = keyframes[i];
14793
- var rightKeyframe = keyframes[i + 1];
14794
- var _buildEasingCurve = buildEasingCurve(leftKeyframe, rightKeyframe), points = _buildEasingCurve.points, curve = _buildEasingCurve.curve, timeInterval = _buildEasingCurve.timeInterval, valueInterval = _buildEasingCurve.valueInterval;
14795
- var s = points[0];
14796
- var e = points[points.length - 1];
14797
- this.keys.push([].concat(s.toArray(), points[1].toArray()));
14798
- this.keys.push([].concat(e.toArray(), points[2].toArray()));
14799
- this.curveMap[s.x + "&" + e.x] = {
14800
- points: points,
14801
- timeInterval: timeInterval,
14802
- valueInterval: valueInterval,
14803
- curve: curve,
14804
- timeStart: Number(s.x),
14805
- timeEnd: Number(e.x)
14806
- };
14807
- }
14808
- this.startKeyframe = keyframes[0];
14809
- this.endKeyframe = keyframes[keyframes.length - 1];
14810
- this.keyTimeData = Object.keys(this.curveMap);
14811
- };
14812
- _proto.getValue = function getValue(time) {
14813
- var result = 0;
14814
- var keyTimeData = this.keyTimeData;
14815
- var keyTimeStart = this.curveMap[keyTimeData[0]].timeStart;
14816
- var keyTimeEnd = this.curveMap[keyTimeData[keyTimeData.length - 1]].timeEnd;
14817
- if (time <= keyTimeStart) {
14818
- keyframeInfo.getPointIndexInCurve(this.startKeyframe, keyframeInfo.pointIndexCache);
14819
- return this.startKeyframe[1][keyframeInfo.pointIndexCache.yIndex];
14820
- }
14821
- if (time >= keyTimeEnd) {
14822
- keyframeInfo.getPointIndexInCurve(this.endKeyframe, keyframeInfo.pointIndexCache);
14823
- return this.endKeyframe[1][keyframeInfo.pointIndexCache.yIndex];
14824
- }
14825
- for(var i = 0; i < keyTimeData.length; i++){
14826
- var xMin = this.curveMap[keyTimeData[i]].timeStart;
14827
- var xMax = this.curveMap[keyTimeData[i]].timeEnd;
14828
- // const [xMin, xMax] = keyTimeData[i].split('&');
14829
- if (time >= Number(xMin) && time < Number(xMax)) {
14830
- result = this.getCurveValue(keyTimeData[i], time);
14831
- break;
14832
- }
14833
- }
14834
- return result;
14835
- };
14836
- _proto.getIntegrateValue = function getIntegrateValue(t0, t1, ts) {
14837
- if (ts === void 0) ts = 1;
14838
- var time = (t1 - t0) / ts;
14839
- var result = 0;
14840
- var keyTimeData = Object.keys(this.curveMap);
14841
- var keyTimeStart = this.curveMap[keyTimeData[0]].timeStart;
14842
- if (time <= keyTimeStart) {
14843
- return 0;
14844
- }
14845
- for(var i = 0; i < keyTimeData.length; i++){
14846
- var xMin = this.curveMap[keyTimeData[i]].timeStart;
14847
- var xMax = this.curveMap[keyTimeData[i]].timeEnd;
14848
- if (time >= Number(xMax)) {
14849
- result += ts * this.getCurveIntegrateValue(keyTimeData[i], Number(xMax));
14850
- }
14851
- if (time >= Number(xMin) && time < Number(xMax)) {
14852
- result += ts * this.getCurveIntegrateValue(keyTimeData[i], time);
14853
- break;
14854
- }
14855
- }
14856
- return result;
14857
- };
14858
- _proto.getIntegrateByTime = function getIntegrateByTime(t0, t1) {
14859
- return this.getIntegrateValue(0, t1) - this.getIntegrateValue(0, t0);
14860
- };
14861
- // 速度变化曲线面板移除后下线
14862
- _proto.getCurveIntegrateValue = function getCurveIntegrateValue(curveKey, time) {
14863
- var curveInfo = this.curveMap[curveKey];
14864
- var _curveInfo_points = curveInfo.points, p0 = _curveInfo_points[0];
14865
- var timeInterval = curveInfo.timeInterval;
14866
- var valueInterval = curveInfo.valueInterval;
14867
- var segments = 20;
14868
- var total = 0;
14869
- var h = (time - p0.x) / segments;
14870
- for(var i = 0; i <= segments; i++){
14871
- var t = i * h;
14872
- var normalizeTime = t / timeInterval;
14873
- var y = p0.y + valueInterval * curveInfo.curve.getValue(normalizeTime);
14874
- if (i === 0 || i === segments) {
14875
- total += y;
14876
- } else if (i % 2 === 1) {
14877
- total += 4 * y;
14878
- } else {
14879
- total += 2 * y;
14880
- }
14881
- }
14882
- total *= h / 3;
14883
- return total;
14884
- };
14885
- _proto.getCurveValue = function getCurveValue(curveKey, time) {
14886
- var curveInfo = this.curveMap[curveKey];
14887
- var _curveInfo_points = curveInfo.points, p0 = _curveInfo_points[0];
14888
- var timeInterval = curveInfo.timeInterval;
14889
- var valueInterval = curveInfo.valueInterval;
14890
- var normalizeTime = (time - p0.x) / timeInterval;
14891
- var value = curveInfo.curve.getValue(normalizeTime);
14892
- return p0.y + valueInterval * value;
14893
- };
14894
- _proto.toUniform = function toUniform(meta) {
14895
- var index = meta.index;
14896
- var count = this.keys.length;
14897
- meta.curves.push(this);
14898
- meta.index = index + count;
14899
- // 兼容 WebGL1
14900
- meta.max = Math.max(meta.max, count);
14901
- meta.curveCount += count;
14902
- return new Float32Array([
14903
- 5,
14904
- index + 1 / count,
14905
- index,
14906
- count
14907
- ]);
14908
- };
14909
- _proto.toData = function toData() {
14910
- var keys = this.keys;
14911
- var data = new Float32Array(keys.length * 4);
14912
- for(var i = 0, cursor = 0; i < keys.length; i++, cursor += 4){
14913
- data.set(keys[i], cursor);
14914
- }
14915
- return data;
14916
- };
14917
- _proto.getMaxTime = function getMaxTime() {
14918
- var keyTimeData = this.keyTimeData;
14919
- return this.curveMap[keyTimeData[keyTimeData.length - 1]].timeEnd;
14920
- };
14921
- return BezierCurve;
14922
- }(ValueGetter);
14923
14807
  var PathSegments = /*#__PURE__*/ function(ValueGetter) {
14924
14808
  _inherits(PathSegments, ValueGetter);
14925
14809
  function PathSegments() {
@@ -15273,6 +15157,292 @@ var Vector2Curve = /*#__PURE__*/ function(ValueGetter) {
15273
15157
  return Vector2Curve;
15274
15158
  }(ValueGetter);
15275
15159
 
15160
+ var TangentMode;
15161
+ (function(TangentMode) {
15162
+ TangentMode[TangentMode["Cubic"] = 0] = "Cubic";
15163
+ TangentMode[TangentMode["Linear"] = 1] = "Linear";
15164
+ TangentMode[TangentMode["Constant"] = 2] = "Constant";
15165
+ })(TangentMode || (TangentMode = {}));
15166
+ var WeightedMode;
15167
+ (function(WeightedMode) {
15168
+ WeightedMode[WeightedMode["None"] = 0] = "None";
15169
+ WeightedMode[WeightedMode["In"] = 1] = "In";
15170
+ WeightedMode[WeightedMode["Out"] = 2] = "Out";
15171
+ WeightedMode[WeightedMode["Both"] = 3] = "Both";
15172
+ })(WeightedMode || (WeightedMode = {}));
15173
+ var BezierCurve = /*#__PURE__*/ function(ValueGetter) {
15174
+ _inherits(BezierCurve, ValueGetter);
15175
+ function BezierCurve() {
15176
+ return ValueGetter.apply(this, arguments);
15177
+ }
15178
+ var _proto = BezierCurve.prototype;
15179
+ _proto.onCreate = function onCreate(props) {
15180
+ this.keyFrames = props;
15181
+ var keyframes = this.keyFrames;
15182
+ this.curveMap = {};
15183
+ this.keys = [];
15184
+ this.curveInfos = [];
15185
+ for(var i = 0; i < keyframes.length - 1; i++){
15186
+ var leftKeyframe = keyframes[i];
15187
+ var rightKeyframe = keyframes[i + 1];
15188
+ var _buildBezierEasing = buildBezierEasing(leftKeyframe, rightKeyframe), points = _buildBezierEasing.points, curve = _buildBezierEasing.curve, timeInterval = _buildBezierEasing.timeInterval, valueInterval = _buildBezierEasing.valueInterval;
15189
+ var s = points[0];
15190
+ var e = points[points.length - 1];
15191
+ this.keys.push([].concat(s.toArray(), points[1].toArray()));
15192
+ this.keys.push([].concat(e.toArray(), points[2].toArray()));
15193
+ var curveInfo = {
15194
+ points: points,
15195
+ timeInterval: timeInterval,
15196
+ valueInterval: valueInterval,
15197
+ curve: curve,
15198
+ timeStart: Number(s.x),
15199
+ timeEnd: Number(e.x)
15200
+ };
15201
+ this.curveMap[s.x + "&" + e.x] = curveInfo;
15202
+ this.curveInfos.push(curveInfo);
15203
+ }
15204
+ };
15205
+ _proto.getValue = function getValue(time) {
15206
+ var result = 0;
15207
+ var keysNumber = this.keyFrames.length;
15208
+ if (time <= this.keyFrames[0].time) {
15209
+ result = this.keyFrames[0].value;
15210
+ } else if (time < this.keyFrames[keysNumber - 1].time) {
15211
+ for(var i = 0; i < this.keyFrames.length - 1; i++){
15212
+ var xMin = this.keyFrames[i].time;
15213
+ var xMax = this.keyFrames[i + 1].time;
15214
+ if (time >= xMin && time < xMax) {
15215
+ var curveInfo = this.curveInfos[i];
15216
+ var p0 = curveInfo.points[0];
15217
+ var timeInterval = curveInfo.timeInterval;
15218
+ var valueInterval = curveInfo.valueInterval;
15219
+ var normalizeTime = (time - p0.x) / timeInterval;
15220
+ var value = curveInfo.curve.getValue(normalizeTime);
15221
+ result = p0.y + valueInterval * value;
15222
+ break;
15223
+ }
15224
+ }
15225
+ } else if (time >= this.keyFrames[keysNumber - 1].time) {
15226
+ result = this.keyFrames[keysNumber - 1].value;
15227
+ }
15228
+ return result;
15229
+ };
15230
+ _proto.getIntegrateValue = function getIntegrateValue(t0, t1, ts) {
15231
+ if (ts === void 0) ts = 1;
15232
+ var time = (t1 - t0) / ts;
15233
+ var result = 0;
15234
+ var keyTimeData = Object.keys(this.curveMap);
15235
+ var keyTimeStart = this.curveMap[keyTimeData[0]].timeStart;
15236
+ if (time <= keyTimeStart) {
15237
+ return 0;
15238
+ }
15239
+ for(var i = 0; i < keyTimeData.length; i++){
15240
+ var xMin = this.curveMap[keyTimeData[i]].timeStart;
15241
+ var xMax = this.curveMap[keyTimeData[i]].timeEnd;
15242
+ if (time >= Number(xMax)) {
15243
+ result += ts * this.getCurveIntegrateValue(keyTimeData[i], Number(xMax));
15244
+ }
15245
+ if (time >= Number(xMin) && time < Number(xMax)) {
15246
+ result += ts * this.getCurveIntegrateValue(keyTimeData[i], time);
15247
+ break;
15248
+ }
15249
+ }
15250
+ return result;
15251
+ };
15252
+ _proto.getIntegrateByTime = function getIntegrateByTime(t0, t1) {
15253
+ return this.getIntegrateValue(0, t1) - this.getIntegrateValue(0, t0);
15254
+ };
15255
+ // 速度变化曲线面板移除后下线
15256
+ _proto.getCurveIntegrateValue = function getCurveIntegrateValue(curveKey, time) {
15257
+ var curveInfo = this.curveMap[curveKey];
15258
+ var _curveInfo_points = curveInfo.points, p0 = _curveInfo_points[0];
15259
+ var timeInterval = curveInfo.timeInterval;
15260
+ var valueInterval = curveInfo.valueInterval;
15261
+ var segments = 20;
15262
+ var total = 0;
15263
+ var h = (time - p0.x) / segments;
15264
+ for(var i = 0; i <= segments; i++){
15265
+ var t = i * h;
15266
+ var normalizeTime = t / timeInterval;
15267
+ var y = p0.y + valueInterval * curveInfo.curve.getValue(normalizeTime);
15268
+ if (i === 0 || i === segments) {
15269
+ total += y;
15270
+ } else if (i % 2 === 1) {
15271
+ total += 4 * y;
15272
+ } else {
15273
+ total += 2 * y;
15274
+ }
15275
+ }
15276
+ total *= h / 3;
15277
+ return total;
15278
+ };
15279
+ _proto.toUniform = function toUniform(meta) {
15280
+ var index = meta.index;
15281
+ var count = this.keys.length;
15282
+ meta.curves.push(this);
15283
+ meta.index = index + count;
15284
+ // 兼容 WebGL1
15285
+ meta.max = Math.max(meta.max, count);
15286
+ meta.curveCount += count;
15287
+ return new Float32Array([
15288
+ 5,
15289
+ index + 1 / count,
15290
+ index,
15291
+ count
15292
+ ]);
15293
+ };
15294
+ _proto.toData = function toData() {
15295
+ var keys = this.keys;
15296
+ var data = new Float32Array(keys.length * 4);
15297
+ for(var i = 0, cursor = 0; i < keys.length; i++, cursor += 4){
15298
+ data.set(keys[i], cursor);
15299
+ }
15300
+ return data;
15301
+ };
15302
+ _proto.getMaxTime = function getMaxTime() {
15303
+ return this.keyFrames[this.keyFrames.length - 1].time;
15304
+ };
15305
+ return BezierCurve;
15306
+ }(ValueGetter);
15307
+ function buildBezierEasing(leftKeyframe, rightKeyframe) {
15308
+ var p0 = new Vector2(leftKeyframe.time, leftKeyframe.value);
15309
+ var p1 = new Vector2();
15310
+ var p2 = new Vector2();
15311
+ var p3 = new Vector2();
15312
+ var isWeighted = leftKeyframe.weightedMode === 2 || leftKeyframe.weightedMode === 3 || rightKeyframe.weightedMode === 1 || rightKeyframe.weightedMode === 3;
15313
+ var isConstant = leftKeyframe.tangentMode === 2;
15314
+ var rightDeltaX = (isWeighted ? leftKeyframe.outWeight : 1) * (rightKeyframe.time - leftKeyframe.time) / 3;
15315
+ p1.x = leftKeyframe.time + rightDeltaX;
15316
+ p1.y = leftKeyframe.value + rightDeltaX * (isConstant ? 0 : leftKeyframe.outSlope);
15317
+ var leftDeltaX = (isWeighted ? rightKeyframe.inWeight : 1) * (rightKeyframe.time - leftKeyframe.time) / 3;
15318
+ p2.x = rightKeyframe.time - leftDeltaX;
15319
+ p2.y = rightKeyframe.value - leftDeltaX * (isConstant ? 0 : rightKeyframe.inSlope);
15320
+ p3.x = rightKeyframe.time;
15321
+ p3.y = isConstant ? leftKeyframe.value : rightKeyframe.value;
15322
+ assertExist(p2);
15323
+ assertExist(p3);
15324
+ var timeInterval = p3.x - p0.x;
15325
+ var valueInterval = p3.y - p0.y;
15326
+ var y1, y2;
15327
+ var x1 = numberToFix((p1.x - p0.x) / timeInterval, 5);
15328
+ var x2 = numberToFix((p2.x - p0.x) / timeInterval, 5);
15329
+ if (decimalEqual(valueInterval, 0)) {
15330
+ y1 = y2 = NaN;
15331
+ } else {
15332
+ y1 = numberToFix((p1.y - p0.y) / valueInterval, 5);
15333
+ y2 = numberToFix((p2.y - p0.y) / valueInterval, 5);
15334
+ }
15335
+ if (x1 < 0) {
15336
+ console.error("Invalid bezier points, x1 < 0", p0, p1, p2, p3);
15337
+ x1 = 0;
15338
+ }
15339
+ if (x2 < 0) {
15340
+ console.error("Invalid bezier points, x2 < 0", p0, p1, p2, p3);
15341
+ x2 = 0;
15342
+ }
15343
+ if (x1 > 1) {
15344
+ console.error("Invalid bezier points, x1 >= 1", p0, p1, p2, p3);
15345
+ x1 = 1;
15346
+ }
15347
+ if (x2 > 1) {
15348
+ console.error("Invalid bezier points, x2 >= 1", p0, p1, p2, p3);
15349
+ x2 = 1;
15350
+ }
15351
+ var str = ("bez_" + x1 + "_" + y1 + "_" + x2 + "_" + y2).replace(/\./g, "p");
15352
+ var bezEasing;
15353
+ if (BezierMap[str]) {
15354
+ bezEasing = BezierMap[str];
15355
+ } else {
15356
+ if (decimalEqual(valueInterval, 0)) {
15357
+ bezEasing = new BezierEasing();
15358
+ } else if (isWeighted) {
15359
+ bezEasing = new BezierEasing(x1, y1, x2, y2);
15360
+ } else {
15361
+ bezEasing = new BezierEasing(y1, y2);
15362
+ }
15363
+ BezierMap[str] = bezEasing;
15364
+ }
15365
+ return {
15366
+ points: [
15367
+ p0,
15368
+ p1,
15369
+ p2,
15370
+ p3
15371
+ ],
15372
+ timeInterval: timeInterval,
15373
+ valueInterval: valueInterval,
15374
+ curve: bezEasing
15375
+ };
15376
+ }
15377
+ function oldBezierKeyFramesToNew(props) {
15378
+ var oldKeyframes = props;
15379
+ var keyframes = [];
15380
+ var keyDatas = [];
15381
+ var lastControl = {
15382
+ x: 0,
15383
+ y: 0
15384
+ };
15385
+ for(var i = 0; i < oldKeyframes.length - 1; i++){
15386
+ var leftKeyframe = oldKeyframes[i];
15387
+ var rightKeyframe = oldKeyframes[i + 1];
15388
+ var _getControlPoints = getControlPoints(leftKeyframe, rightKeyframe, true), p0 = _getControlPoints.p0, p1 = _getControlPoints.p1, p2 = _getControlPoints.p2, p3 = _getControlPoints.p3;
15389
+ assertExist(p2);
15390
+ assertExist(p3);
15391
+ var keyData = {
15392
+ leftControl: lastControl,
15393
+ value: p0,
15394
+ rightControl: p1,
15395
+ tangentMode: 0
15396
+ };
15397
+ if (leftKeyframe[0] === BezierKeyframeType.HOLD) {
15398
+ keyData.tangentMode = 2;
15399
+ }
15400
+ keyDatas.push(keyData);
15401
+ lastControl = p2;
15402
+ if (i === oldKeyframes.length - 2) {
15403
+ var res = getControlPoints(rightKeyframe, rightKeyframe, true);
15404
+ assertExist(res.p3);
15405
+ keyDatas.push({
15406
+ leftControl: p2,
15407
+ value: res.p3,
15408
+ rightControl: {
15409
+ x: 0,
15410
+ y: 0
15411
+ },
15412
+ tangentMode: rightKeyframe[0] === BezierKeyframeType.HOLD ? 2 : 0
15413
+ });
15414
+ }
15415
+ }
15416
+ var calculateSlop = function(p0, p1) {
15417
+ return (p1.y - p0.y) / (p1.x - p0.x + NumberEpsilon);
15418
+ };
15419
+ for(var i1 = 0; i1 < keyDatas.length; i1++){
15420
+ var leftControl = keyDatas[i1].leftControl;
15421
+ var value = keyDatas[i1].value;
15422
+ var rightControl = keyDatas[i1].rightControl;
15423
+ var outSlop = calculateSlop(value, rightControl);
15424
+ var inSlop = calculateSlop(leftControl, value);
15425
+ var keyframe = {
15426
+ time: value.x,
15427
+ value: value.y,
15428
+ inSlope: inSlop,
15429
+ outSlope: outSlop,
15430
+ inWeight: 0,
15431
+ outWeight: 0,
15432
+ tangentMode: keyDatas[i1].tangentMode,
15433
+ weightedMode: 3
15434
+ };
15435
+ keyframes.push(keyframe);
15436
+ if (i1 > 0) {
15437
+ keyframe.inWeight = (value.x - leftControl.x) / ((value.x - keyDatas[i1 - 1].value.x) / 3);
15438
+ }
15439
+ if (i1 + 1 < keyDatas.length) {
15440
+ keyframe.outWeight = (rightControl.x - value.x) / ((keyDatas[i1 + 1].value.x - value.x) / 3);
15441
+ }
15442
+ }
15443
+ return keyframes;
15444
+ }
15445
+
15276
15446
  var _obj$2;
15277
15447
  var map = (_obj$2 = {}, _obj$2[ValueType.RANDOM] = function(props) {
15278
15448
  if (_instanceof1(props[0], Array)) {
@@ -15309,7 +15479,8 @@ var map = (_obj$2 = {}, _obj$2[ValueType.RANDOM] = function(props) {
15309
15479
  if (props.length === 1) {
15310
15480
  return new StaticValue(props[0][1][1]);
15311
15481
  }
15312
- return new BezierCurve(props);
15482
+ // TODO: Move to migration.
15483
+ return new BezierCurve(oldBezierKeyFramesToNew(props));
15313
15484
  }, _obj$2[ValueType.BEZIER_CURVE_PATH] = function(props) {
15314
15485
  if (props[0].length === 1) {
15315
15486
  return new StaticValue(_construct(Vector3, [].concat(props[1][0])));
@@ -26208,6 +26379,10 @@ var TextComponentBase = /*#__PURE__*/ function() {
26208
26379
  var width = this.textLayout.width + this.textStyle.fontOffset;
26209
26380
  var lineCount = 1;
26210
26381
  var x = 0;
26382
+ //设置context.font的字号
26383
+ // if (context) {
26384
+ // context.font = this.getFontDesc(this.textStyle.fontSize);
26385
+ // }
26211
26386
  for(var i = 0; i < text.length; i++){
26212
26387
  var _context_measureText;
26213
26388
  var str = text[i];
@@ -28396,7 +28571,7 @@ function getStandardSpriteContent(sprite, transform) {
28396
28571
  return ret;
28397
28572
  }
28398
28573
 
28399
- var version$1 = "2.5.0-alpha.6";
28574
+ var version$1 = "2.5.1";
28400
28575
  var v0 = /^(\d+)\.(\d+)\.(\d+)(-(\w+)\.\d+)?$/;
28401
28576
  var standardVersion = /^(\d+)\.(\d+)$/;
28402
28577
  var reverseParticle = false;
@@ -31646,8 +31821,8 @@ registerPlugin("sprite", SpriteLoader, VFXItem);
31646
31821
  registerPlugin("particle", ParticleLoader, VFXItem);
31647
31822
  registerPlugin("cal", CalculateLoader, VFXItem);
31648
31823
  registerPlugin("interact", InteractLoader, VFXItem);
31649
- var version = "2.5.0-alpha.6";
31824
+ var version = "2.5.1";
31650
31825
  logger.info("Core version: " + version + ".");
31651
31826
 
31652
- export { AbstractPlugin, ActivationPlayable, ActivationPlayableAsset, ActivationTrack, AnimationClip, AnimationClipPlayable, Asset, AssetLoader, AssetManager, AssetService, BYTES_TYPE_MAP, BaseRenderComponent, Behaviour, BezierCurve, BezierCurvePath, BezierCurveQuat, BinaryAsset, COMPRESSED_TEXTURE, COPY_FRAGMENT_SHADER, COPY_MESH_SHADER_ID, COPY_VERTEX_SHADER, CalculateLoader, Camera, CameraController, CameraVFXItemLoader, ColorCurve, ColorPropertyPlayableAsset, ColorPropertyTrack, Component, Composition, CompositionComponent, DEFAULT_FONTS, DEFAULT_FPS, Database, Deferred, DestroyOptions, Downloader, EFFECTS_COPY_MESH_NAME, EVENT_TYPE_CLICK, EVENT_TYPE_TOUCH_END, EVENT_TYPE_TOUCH_MOVE, EVENT_TYPE_TOUCH_START, EffectComponent, EffectsObject, EffectsPackage, Ellipse, Engine, EventEmitter, EventSystem, Fake3DAnimationMode, Fake3DComponent, FilterMode, Float16ArrayWrapper, FloatPropertyPlayableAsset, FloatPropertyTrack, Framebuffer, GLSLVersion, GPUCapability, Geometry, GlobalUniforms, GradientValue, GraphicsPath, HELP_LINK, HitTestType, InteractComponent, InteractLoader, InteractMesh, Item, KTXTexture, LineSegments, LinearValue, MaskMode, MaskProcessor, Material, MaterialDataBlock, MaterialRenderType, MaterialTrack, Mesh, MeshCollider, ObjectBindingTrack, OrderType, PLAYER_OPTIONS_ENV_EDITOR, POST_PROCESS_SETTINGS, ParticleBehaviourPlayable, ParticleBehaviourPlayableAsset, ParticleLoader, ParticleMesh, ParticleSystem, ParticleSystemRenderer, ParticleTrack, PassTextureCache, PathSegments, PluginSystem, PolyStar, Polygon, PostProcessVolume, PropertyTrack, RENDER_PASS_NAME_PREFIX, RENDER_PREFER_LOOKUP_TEXTURE, RUNTIME_ENV, RandomSetValue, RandomValue, RandomVectorValue, RenderFrame, RenderPass, RenderPassAttachmentStorageType, RenderPassDestroyAttachmentType, RenderPassPriorityNormal, RenderPassPriorityPostprocess, RenderPassPriorityPrepare, RenderTargetHandle, RenderTextureFormat, Renderbuffer, Renderer, RendererComponent, RuntimeClip, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_0, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_SIZE_0, SEMANTIC_PRE_COLOR_ATTACHMENT_0, SEMANTIC_PRE_COLOR_ATTACHMENT_SIZE_0, SPRITE_VERTEX_STRIDE, Scene, SemanticMap, SerializationHelper, Shader, ShaderCompileResultStatus, ShaderFactory, ShaderType, ShaderVariant, ShapeComponent, ShapePath, SpriteColorPlayableAsset, SpriteColorTrack, SpriteComponent, SpriteLoader, StarType, StaticValue, SubCompositionPlayableAsset, SubCompositionTrack, TEMPLATE_USE_OFFSCREEN_CANVAS, TextComponent, TextComponentBase, TextLayout, TextLoader, TextStyle, Texture, TextureFactory, TextureLoadAction, TextureSourceType, TextureStoreAction, Ticker, TimelineAsset, TimelineClip, TimelinePlayable, TrackAsset, TrackSortWrapper, TrackType, Transform, TransformAnimationPlayable, TransformPlayableAsset, TransformTrack, VFXItem, ValueGetter, Vector2Curve, Vector2PropertyPlayableAsset, Vector2PropertyTrack, Vector4Curve, Vector4PropertyPlayableAsset, Vector4PropertyTrack, addByOrder, addItem, addItemWithOrder, applyMixins, assertExist, asserts, base64ToFile, blend, buildLine, calculateTranslation, canvasPool, closePointEps, colorGradingFrag, colorStopsFromGradient, colorToArr$1 as colorToArr, combineImageTemplate, createCopyShader, createGLContext, createKeyFrameMeta, createShape, createValueGetter, curveEps, decimalEqual, defaultPlugins, deserializeMipmapTexture, earcut, effectsClass, effectsClassStore, enlargeBuffer, ensureFixedNumber, ensureVec3, findPreviousRenderPass, gaussianDown_frag as gaussianDownFrag, gaussianDownHFrag, gaussianDownVFrag, gaussianUpFrag, generateEmptyTypedArray, generateGUID, generateHalfFloatTexture, generateTransparentTexture, generateWhiteTexture, getBackgroundImage, getColorFromGradientStops, getConfig, getDefaultTextureFactory, getGeometryByShape, getGeometryTriangles, getKTXTextureOptions, getKeyFrameMetaByRawValue, getMergedStore, getParticleMeshShader, getPixelRatio, getPreMultiAlpha, getStandardComposition, getStandardImage, getStandardItem, getStandardJSON, getTextureSize, glContext, glType2VertexFormatType, gpuTimer, imageDataFromColor, imageDataFromGradient, initErrors, initGLContext, integrate, interpolateColor, isAlipayMiniApp, isAndroid, isArray, isCanvas, isFunction, isIOS, isIOSByUA, isMiniProgram, isObject, isOpenHarmony, isSimulatorCellPhone, isString, isUniformStruct, isUniformStructArray, isValidFontFamily, isWebGL2, isWechatMiniApp, itemFrag, itemFrame_frag as itemFrameFrag, itemVert, loadAVIFOptional, loadBinary, loadBlob, loadImage, loadMedia, loadVideo, loadWebPOptional, logger, index as math, maxSpriteMeshItemCount, modifyMaxKeyframeShader, nearestPowerOfTwo, noop, normalizeColor, numberToFix, parsePercent$1 as parsePercent, particleFrag, particleOriginTranslateMap$1 as particleOriginTranslateMap, particleUniformTypeMap, particleVert, passRenderLevel, pluginLoaderMap, randomInRange, registerPlugin, removeItem, rotateVec2, screenMeshVert, serialize, setBlendMode, setConfig, setDefaultTextureFactory, setMaskMode, setMaxSpriteMeshItemCount, setRayFromCamera, setSideMode, setSpriteMeshMaxItemCountByGPU, sortByOrder, index$1 as spec, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecFill, vecMulCombine, version, vertexFormatType2GLType };
31827
+ export { AbstractPlugin, ActivationPlayable, ActivationPlayableAsset, ActivationTrack, AnimationClip, AnimationClipPlayable, Asset, AssetLoader, AssetManager, AssetService, BYTES_TYPE_MAP, BaseRenderComponent, Behaviour, BezierCurve, BezierCurvePath, BezierCurveQuat, BinaryAsset, COMPRESSED_TEXTURE, COPY_FRAGMENT_SHADER, COPY_MESH_SHADER_ID, COPY_VERTEX_SHADER, CalculateLoader, Camera, CameraController, CameraVFXItemLoader, ColorCurve, ColorPropertyPlayableAsset, ColorPropertyTrack, Component, Composition, CompositionComponent, DEFAULT_FONTS, DEFAULT_FPS, Database, Deferred, DestroyOptions, Downloader, EFFECTS_COPY_MESH_NAME, EVENT_TYPE_CLICK, EVENT_TYPE_TOUCH_END, EVENT_TYPE_TOUCH_MOVE, EVENT_TYPE_TOUCH_START, EffectComponent, EffectsObject, EffectsPackage, Ellipse, Engine, EventEmitter, EventSystem, Fake3DAnimationMode, Fake3DComponent, FilterMode, Float16ArrayWrapper, FloatPropertyPlayableAsset, FloatPropertyTrack, Framebuffer, GLSLVersion, GPUCapability, Geometry, GlobalUniforms, GradientValue, GraphicsPath, HELP_LINK, HitTestType, InteractComponent, InteractLoader, InteractMesh, Item, KTXTexture, LineSegments, LinearValue, MaskMode, MaskProcessor, Material, MaterialDataBlock, MaterialRenderType, MaterialTrack, Mesh, MeshCollider, ObjectBindingTrack, OrderType, PLAYER_OPTIONS_ENV_EDITOR, POST_PROCESS_SETTINGS, ParticleBehaviourPlayable, ParticleBehaviourPlayableAsset, ParticleLoader, ParticleMesh, ParticleSystem, ParticleSystemRenderer, ParticleTrack, PassTextureCache, PathSegments, PluginSystem, PolyStar, Polygon, PostProcessVolume, PropertyTrack, RENDER_PASS_NAME_PREFIX, RENDER_PREFER_LOOKUP_TEXTURE, RUNTIME_ENV, RandomSetValue, RandomValue, RandomVectorValue, RenderFrame, RenderPass, RenderPassAttachmentStorageType, RenderPassDestroyAttachmentType, RenderPassPriorityNormal, RenderPassPriorityPostprocess, RenderPassPriorityPrepare, RenderTargetHandle, RenderTextureFormat, Renderbuffer, Renderer, RendererComponent, RuntimeClip, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_0, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_SIZE_0, SEMANTIC_PRE_COLOR_ATTACHMENT_0, SEMANTIC_PRE_COLOR_ATTACHMENT_SIZE_0, SPRITE_VERTEX_STRIDE, Scene, SemanticMap, SerializationHelper, Shader, ShaderCompileResultStatus, ShaderFactory, ShaderType, ShaderVariant, ShapeComponent, ShapePath, SpriteColorPlayableAsset, SpriteColorTrack, SpriteComponent, SpriteLoader, StarType, StaticValue, SubCompositionPlayableAsset, SubCompositionTrack, TEMPLATE_USE_OFFSCREEN_CANVAS, TangentMode, TextComponent, TextComponentBase, TextLayout, TextLoader, TextStyle, Texture, TextureFactory, TextureLoadAction, TextureSourceType, TextureStoreAction, Ticker, TimelineAsset, TimelineClip, TimelinePlayable, TrackAsset, TrackSortWrapper, TrackType, Transform, TransformAnimationPlayable, TransformPlayableAsset, TransformTrack, VFXItem, ValueGetter, Vector2Curve, Vector2PropertyPlayableAsset, Vector2PropertyTrack, Vector4Curve, Vector4PropertyPlayableAsset, Vector4PropertyTrack, WeightedMode, addByOrder, addItem, addItemWithOrder, applyMixins, assertExist, asserts, base64ToFile, blend, buildLine, calculateTranslation, canvasPool, closePointEps, colorGradingFrag, colorStopsFromGradient, colorToArr$1 as colorToArr, combineImageTemplate, createCopyShader, createGLContext, createKeyFrameMeta, createShape, createValueGetter, curveEps, decimalEqual, defaultPlugins, deserializeMipmapTexture, earcut, effectsClass, effectsClassStore, enlargeBuffer, ensureFixedNumber, ensureVec3, findPreviousRenderPass, gaussianDown_frag as gaussianDownFrag, gaussianDownHFrag, gaussianDownVFrag, gaussianUpFrag, generateEmptyTypedArray, generateGUID, generateHalfFloatTexture, generateTransparentTexture, generateWhiteTexture, getBackgroundImage, getColorFromGradientStops, getConfig, getDefaultTextureFactory, getGeometryByShape, getGeometryTriangles, getKTXTextureOptions, getKeyFrameMetaByRawValue, getMergedStore, getParticleMeshShader, getPixelRatio, getPreMultiAlpha, getStandardComposition, getStandardImage, getStandardItem, getStandardJSON, getTextureSize, glContext, glType2VertexFormatType, gpuTimer, imageDataFromColor, imageDataFromGradient, initErrors, initGLContext, integrate, interpolateColor, isAlipayMiniApp, isAndroid, isArray, isCanvas, isFunction, isIOS, isIOSByUA, isMiniProgram, isObject, isOpenHarmony, isSimulatorCellPhone, isString, isUniformStruct, isUniformStructArray, isValidFontFamily, isWebGL2, isWechatMiniApp, itemFrag, itemFrame_frag as itemFrameFrag, itemVert, loadAVIFOptional, loadBinary, loadBlob, loadImage, loadMedia, loadVideo, loadWebPOptional, logger, index as math, maxSpriteMeshItemCount, modifyMaxKeyframeShader, nearestPowerOfTwo, noop, normalizeColor, numberToFix, oldBezierKeyFramesToNew, parsePercent$1 as parsePercent, particleFrag, particleOriginTranslateMap$1 as particleOriginTranslateMap, particleUniformTypeMap, particleVert, passRenderLevel, pluginLoaderMap, randomInRange, registerPlugin, removeItem, rotateVec2, screenMeshVert, serialize, setBlendMode, setConfig, setDefaultTextureFactory, setMaskMode, setMaxSpriteMeshItemCount, setRayFromCamera, setSideMode, setSpriteMeshMaxItemCountByGPU, sortByOrder, index$1 as spec, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecFill, vecMulCombine, version, vertexFormatType2GLType };
31653
31828
  //# sourceMappingURL=index.mjs.map