@esengine/ecs-framework-math 2.10.0 → 2.10.3

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.
Files changed (92) hide show
  1. package/dist/index.cjs +2 -0
  2. package/dist/index.cjs.map +1 -0
  3. package/dist/index.d.ts +10175 -0
  4. package/dist/index.mjs +2 -0
  5. package/dist/index.mjs.map +1 -0
  6. package/dist/index.umd.js +2 -0
  7. package/dist/index.umd.js.map +1 -0
  8. package/package.json +21 -12
  9. package/bin/Animation/Easing.d.ts +0 -244
  10. package/bin/Animation/Easing.d.ts.map +0 -1
  11. package/bin/Animation/Easing.js +0 -407
  12. package/bin/Animation/Easing.js.map +0 -1
  13. package/bin/Animation/Interpolation.d.ts +0 -172
  14. package/bin/Animation/Interpolation.d.ts.map +0 -1
  15. package/bin/Animation/Interpolation.js +0 -327
  16. package/bin/Animation/Interpolation.js.map +0 -1
  17. package/bin/Animation/index.d.ts +0 -8
  18. package/bin/Animation/index.d.ts.map +0 -1
  19. package/bin/Animation/index.js +0 -8
  20. package/bin/Animation/index.js.map +0 -1
  21. package/bin/Circle.d.ts +0 -277
  22. package/bin/Circle.d.ts.map +0 -1
  23. package/bin/Circle.js +0 -496
  24. package/bin/Circle.js.map +0 -1
  25. package/bin/Collision/CollisionDetector.d.ts +0 -114
  26. package/bin/Collision/CollisionDetector.d.ts.map +0 -1
  27. package/bin/Collision/CollisionDetector.js +0 -353
  28. package/bin/Collision/CollisionDetector.js.map +0 -1
  29. package/bin/Collision/index.d.ts +0 -7
  30. package/bin/Collision/index.d.ts.map +0 -1
  31. package/bin/Collision/index.js +0 -7
  32. package/bin/Collision/index.js.map +0 -1
  33. package/bin/Color.d.ts +0 -277
  34. package/bin/Color.d.ts.map +0 -1
  35. package/bin/Color.js +0 -470
  36. package/bin/Color.js.map +0 -1
  37. package/bin/Fixed32.d.ts +0 -266
  38. package/bin/Fixed32.d.ts.map +0 -1
  39. package/bin/Fixed32.js +0 -381
  40. package/bin/Fixed32.js.map +0 -1
  41. package/bin/FixedMath.d.ts +0 -109
  42. package/bin/FixedMath.d.ts.map +0 -1
  43. package/bin/FixedMath.js +0 -264
  44. package/bin/FixedMath.js.map +0 -1
  45. package/bin/FixedVector2.d.ts +0 -293
  46. package/bin/FixedVector2.d.ts.map +0 -1
  47. package/bin/FixedVector2.js +0 -413
  48. package/bin/FixedVector2.js.map +0 -1
  49. package/bin/MathUtils.d.ts +0 -312
  50. package/bin/MathUtils.d.ts.map +0 -1
  51. package/bin/MathUtils.js +0 -500
  52. package/bin/MathUtils.js.map +0 -1
  53. package/bin/Matrix3.d.ts +0 -288
  54. package/bin/Matrix3.d.ts.map +0 -1
  55. package/bin/Matrix3.js +0 -542
  56. package/bin/Matrix3.js.map +0 -1
  57. package/bin/Rectangle.d.ts +0 -266
  58. package/bin/Rectangle.d.ts.map +0 -1
  59. package/bin/Rectangle.js +0 -437
  60. package/bin/Rectangle.js.map +0 -1
  61. package/bin/Vector2.d.ts +0 -333
  62. package/bin/Vector2.d.ts.map +0 -1
  63. package/bin/Vector2.js +0 -484
  64. package/bin/Vector2.js.map +0 -1
  65. package/bin/Vector3.d.ts +0 -257
  66. package/bin/Vector3.d.ts.map +0 -1
  67. package/bin/Vector3.js +0 -372
  68. package/bin/Vector3.js.map +0 -1
  69. package/bin/index.d.ts +0 -25
  70. package/bin/index.d.ts.map +0 -1
  71. package/bin/index.js +0 -32
  72. package/bin/index.js.map +0 -1
  73. package/bin/nodes/ColorNodes.d.ts +0 -70
  74. package/bin/nodes/ColorNodes.d.ts.map +0 -1
  75. package/bin/nodes/ColorNodes.js +0 -427
  76. package/bin/nodes/ColorNodes.js.map +0 -1
  77. package/bin/nodes/FixedNodes.d.ts +0 -98
  78. package/bin/nodes/FixedNodes.d.ts.map +0 -1
  79. package/bin/nodes/FixedNodes.js +0 -612
  80. package/bin/nodes/FixedNodes.js.map +0 -1
  81. package/bin/nodes/FixedVectorNodes.d.ts +0 -58
  82. package/bin/nodes/FixedVectorNodes.d.ts.map +0 -1
  83. package/bin/nodes/FixedVectorNodes.js +0 -330
  84. package/bin/nodes/FixedVectorNodes.js.map +0 -1
  85. package/bin/nodes/VectorNodes.d.ts +0 -62
  86. package/bin/nodes/VectorNodes.d.ts.map +0 -1
  87. package/bin/nodes/VectorNodes.js +0 -355
  88. package/bin/nodes/VectorNodes.js.map +0 -1
  89. package/bin/nodes/index.d.ts +0 -20
  90. package/bin/nodes/index.d.ts.map +0 -1
  91. package/bin/nodes/index.js +0 -27
  92. package/bin/nodes/index.js.map +0 -1
@@ -1,407 +0,0 @@
1
- /**
2
- * 缓动函数集合
3
- *
4
- * 提供各种常用的缓动函数,用于创建平滑的动画效果
5
- * 所有函数接受时间参数 t (0-1),返回缓动后的值 (通常0-1)
6
- */
7
- export class Easing {
8
- // 线性缓动
9
- /**
10
- * 线性缓动(无缓动)
11
- * @param t 时间参数 (0-1)
12
- * @returns 缓动值
13
- */
14
- static linear(t) {
15
- return t;
16
- }
17
- // 二次方缓动 (Quadratic)
18
- /**
19
- * 二次方缓入
20
- * @param t 时间参数 (0-1)
21
- * @returns 缓动值
22
- */
23
- static quadIn(t) {
24
- return t * t;
25
- }
26
- /**
27
- * 二次方缓出
28
- * @param t 时间参数 (0-1)
29
- * @returns 缓动值
30
- */
31
- static quadOut(t) {
32
- return 1 - (1 - t) * (1 - t);
33
- }
34
- /**
35
- * 二次方缓入缓出
36
- * @param t 时间参数 (0-1)
37
- * @returns 缓动值
38
- */
39
- static quadInOut(t) {
40
- return t < 0.5 ? 2 * t * t : 1 - 2 * (1 - t) * (1 - t);
41
- }
42
- // 三次方缓动 (Cubic)
43
- /**
44
- * 三次方缓入
45
- * @param t 时间参数 (0-1)
46
- * @returns 缓动值
47
- */
48
- static cubicIn(t) {
49
- return t * t * t;
50
- }
51
- /**
52
- * 三次方缓出
53
- * @param t 时间参数 (0-1)
54
- * @returns 缓动值
55
- */
56
- static cubicOut(t) {
57
- return 1 - Math.pow(1 - t, 3);
58
- }
59
- /**
60
- * 三次方缓入缓出
61
- * @param t 时间参数 (0-1)
62
- * @returns 缓动值
63
- */
64
- static cubicInOut(t) {
65
- return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;
66
- }
67
- // 四次方缓动 (Quartic)
68
- /**
69
- * 四次方缓入
70
- * @param t 时间参数 (0-1)
71
- * @returns 缓动值
72
- */
73
- static quartIn(t) {
74
- return t * t * t * t;
75
- }
76
- /**
77
- * 四次方缓出
78
- * @param t 时间参数 (0-1)
79
- * @returns 缓动值
80
- */
81
- static quartOut(t) {
82
- return 1 - Math.pow(1 - t, 4);
83
- }
84
- /**
85
- * 四次方缓入缓出
86
- * @param t 时间参数 (0-1)
87
- * @returns 缓动值
88
- */
89
- static quartInOut(t) {
90
- return t < 0.5 ? 8 * t * t * t * t : 1 - Math.pow(-2 * t + 2, 4) / 2;
91
- }
92
- // 五次方缓动 (Quintic)
93
- /**
94
- * 五次方缓入
95
- * @param t 时间参数 (0-1)
96
- * @returns 缓动值
97
- */
98
- static quintIn(t) {
99
- return t * t * t * t * t;
100
- }
101
- /**
102
- * 五次方缓出
103
- * @param t 时间参数 (0-1)
104
- * @returns 缓动值
105
- */
106
- static quintOut(t) {
107
- return 1 - Math.pow(1 - t, 5);
108
- }
109
- /**
110
- * 五次方缓入缓出
111
- * @param t 时间参数 (0-1)
112
- * @returns 缓动值
113
- */
114
- static quintInOut(t) {
115
- return t < 0.5 ? 16 * t * t * t * t * t : 1 - Math.pow(-2 * t + 2, 5) / 2;
116
- }
117
- // 正弦缓动 (Sine)
118
- /**
119
- * 正弦缓入
120
- * @param t 时间参数 (0-1)
121
- * @returns 缓动值
122
- */
123
- static sineIn(t) {
124
- return 1 - Math.cos((t * Math.PI) / 2);
125
- }
126
- /**
127
- * 正弦缓出
128
- * @param t 时间参数 (0-1)
129
- * @returns 缓动值
130
- */
131
- static sineOut(t) {
132
- return Math.sin((t * Math.PI) / 2);
133
- }
134
- /**
135
- * 正弦缓入缓出
136
- * @param t 时间参数 (0-1)
137
- * @returns 缓动值
138
- */
139
- static sineInOut(t) {
140
- return -(Math.cos(Math.PI * t) - 1) / 2;
141
- }
142
- // 指数缓动 (Exponential)
143
- /**
144
- * 指数缓入
145
- * @param t 时间参数 (0-1)
146
- * @returns 缓动值
147
- */
148
- static expoIn(t) {
149
- return t === 0 ? 0 : Math.pow(2, 10 * (t - 1));
150
- }
151
- /**
152
- * 指数缓出
153
- * @param t 时间参数 (0-1)
154
- * @returns 缓动值
155
- */
156
- static expoOut(t) {
157
- return t === 1 ? 1 : 1 - Math.pow(2, -10 * t);
158
- }
159
- /**
160
- * 指数缓入缓出
161
- * @param t 时间参数 (0-1)
162
- * @returns 缓动值
163
- */
164
- static expoInOut(t) {
165
- if (t === 0)
166
- return 0;
167
- if (t === 1)
168
- return 1;
169
- return t < 0.5
170
- ? Math.pow(2, 20 * t - 10) / 2
171
- : (2 - Math.pow(2, -20 * t + 10)) / 2;
172
- }
173
- // 圆形缓动 (Circular)
174
- /**
175
- * 圆形缓入
176
- * @param t 时间参数 (0-1)
177
- * @returns 缓动值
178
- */
179
- static circIn(t) {
180
- return 1 - Math.sqrt(1 - t * t);
181
- }
182
- /**
183
- * 圆形缓出
184
- * @param t 时间参数 (0-1)
185
- * @returns 缓动值
186
- */
187
- static circOut(t) {
188
- return Math.sqrt(1 - (t - 1) * (t - 1));
189
- }
190
- /**
191
- * 圆形缓入缓出
192
- * @param t 时间参数 (0-1)
193
- * @returns 缓动值
194
- */
195
- static circInOut(t) {
196
- return t < 0.5
197
- ? (1 - Math.sqrt(1 - 4 * t * t)) / 2
198
- : (Math.sqrt(1 - (-2 * t + 2) * (-2 * t + 2)) + 1) / 2;
199
- }
200
- // 回弹缓动 (Back)
201
- /**
202
- * 回弹缓入
203
- * @param t 时间参数 (0-1)
204
- * @param s 回弹强度,默认1.70158
205
- * @returns 缓动值
206
- */
207
- static backIn(t, s = 1.70158) {
208
- const c1 = s;
209
- const c3 = c1 + 1;
210
- return c3 * t * t * t - c1 * t * t;
211
- }
212
- /**
213
- * 回弹缓出
214
- * @param t 时间参数 (0-1)
215
- * @param s 回弹强度,默认1.70158
216
- * @returns 缓动值
217
- */
218
- static backOut(t, s = 1.70158) {
219
- const c1 = s;
220
- const c3 = c1 + 1;
221
- return 1 + c3 * Math.pow(t - 1, 3) + c1 * Math.pow(t - 1, 2);
222
- }
223
- /**
224
- * 回弹缓入缓出
225
- * @param t 时间参数 (0-1)
226
- * @param s 回弹强度,默认1.70158
227
- * @returns 缓动值
228
- */
229
- static backInOut(t, s = 1.70158) {
230
- const c1 = s;
231
- const c2 = c1 * 1.525;
232
- return t < 0.5
233
- ? (Math.pow(2 * t, 2) * ((c2 + 1) * 2 * t - c2)) / 2
234
- : (Math.pow(2 * t - 2, 2) * ((c2 + 1) * (t * 2 - 2) + c2) + 2) / 2;
235
- }
236
- // 弹性缓动 (Elastic)
237
- /**
238
- * 弹性缓入
239
- * @param t 时间参数 (0-1)
240
- * @param amplitude 振幅,默认1
241
- * @param period 周期,默认0.3
242
- * @returns 缓动值
243
- */
244
- static elasticIn(t, amplitude = 1, period = 0.3) {
245
- if (t === 0)
246
- return 0;
247
- if (t === 1)
248
- return 1;
249
- const s = period / 4;
250
- return -(amplitude * Math.pow(2, 10 * (t - 1)) * Math.sin((t - 1 - s) * (2 * Math.PI) / period));
251
- }
252
- /**
253
- * 弹性缓出
254
- * @param t 时间参数 (0-1)
255
- * @param amplitude 振幅,默认1
256
- * @param period 周期,默认0.3
257
- * @returns 缓动值
258
- */
259
- static elasticOut(t, amplitude = 1, period = 0.3) {
260
- if (t === 0)
261
- return 0;
262
- if (t === 1)
263
- return 1;
264
- const s = period / 4;
265
- return amplitude * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / period) + 1;
266
- }
267
- /**
268
- * 弹性缓入缓出
269
- * @param t 时间参数 (0-1)
270
- * @param amplitude 振幅,默认1
271
- * @param period 周期,默认0.45
272
- * @returns 缓动值
273
- */
274
- static elasticInOut(t, amplitude = 1, period = 0.45) {
275
- if (t === 0)
276
- return 0;
277
- if (t === 1)
278
- return 1;
279
- const s = period / 4;
280
- if (t < 0.5) {
281
- return -0.5 * (amplitude * Math.pow(2, 10 * (2 * t - 1)) * Math.sin((2 * t - 1 - s) * (2 * Math.PI) / period));
282
- }
283
- return amplitude * Math.pow(2, -10 * (2 * t - 1)) * Math.sin((2 * t - 1 - s) * (2 * Math.PI) / period) * 0.5 + 1;
284
- }
285
- // 跳跃缓动 (Bounce)
286
- /**
287
- * 跳跃缓入
288
- * @param t 时间参数 (0-1)
289
- * @returns 缓动值
290
- */
291
- static bounceIn(t) {
292
- return 1 - Easing.bounceOut(1 - t);
293
- }
294
- /**
295
- * 跳跃缓出
296
- * @param t 时间参数 (0-1)
297
- * @returns 缓动值
298
- */
299
- static bounceOut(t) {
300
- const n1 = 7.5625;
301
- const d1 = 2.75;
302
- if (t < 1 / d1) {
303
- return n1 * t * t;
304
- }
305
- else if (t < 2 / d1) {
306
- return n1 * (t -= 1.5 / d1) * t + 0.75;
307
- }
308
- else if (t < 2.5 / d1) {
309
- return n1 * (t -= 2.25 / d1) * t + 0.9375;
310
- }
311
- else {
312
- return n1 * (t -= 2.625 / d1) * t + 0.984375;
313
- }
314
- }
315
- /**
316
- * 跳跃缓入缓出
317
- * @param t 时间参数 (0-1)
318
- * @returns 缓动值
319
- */
320
- static bounceInOut(t) {
321
- return t < 0.5
322
- ? (1 - Easing.bounceOut(1 - 2 * t)) / 2
323
- : (1 + Easing.bounceOut(2 * t - 1)) / 2;
324
- }
325
- // 组合缓动
326
- /**
327
- * 创建自定义缓动函数(组合多个缓动)
328
- * @param easingFunctions 缓动函数数组
329
- * @param weights 权重数组,默认均等
330
- * @returns 组合后的缓动函数
331
- */
332
- static combine(easingFunctions, weights) {
333
- if (!weights) {
334
- weights = new Array(easingFunctions.length).fill(1 / easingFunctions.length);
335
- }
336
- return (t) => {
337
- let result = 0;
338
- for (let i = 0; i < easingFunctions.length; i++) {
339
- result += easingFunctions[i](t) * (weights[i] || 0);
340
- }
341
- return result;
342
- };
343
- }
344
- /**
345
- * 创建分段缓动函数
346
- * @param segments 分段配置数组,每段包含 {duration, easing}
347
- * @returns 分段缓动函数
348
- */
349
- static piecewise(segments) {
350
- // 计算总持续时间
351
- const totalDuration = segments.reduce((sum, seg) => sum + seg.duration, 0);
352
- // 归一化持续时间
353
- const normalizedSegments = segments.map((seg) => ({
354
- ...seg,
355
- duration: seg.duration / totalDuration
356
- }));
357
- return (t) => {
358
- let accumulatedTime = 0;
359
- for (const segment of normalizedSegments) {
360
- if (t <= accumulatedTime + segment.duration) {
361
- const localT = (t - accumulatedTime) / segment.duration;
362
- return segment.easing(Math.max(0, Math.min(1, localT)));
363
- }
364
- accumulatedTime += segment.duration;
365
- }
366
- // 如果超出范围,返回最后一段的结束值
367
- return normalizedSegments[normalizedSegments.length - 1].easing(1);
368
- };
369
- }
370
- /**
371
- * 创建反向缓动函数
372
- * @param easing 原缓动函数
373
- * @returns 反向缓动函数
374
- */
375
- static reverse(easing) {
376
- return (t) => 1 - easing(1 - t);
377
- }
378
- /**
379
- * 创建镜像缓动函数(先正向再反向)
380
- * @param easing 原缓动函数
381
- * @returns 镜像缓动函数
382
- */
383
- static mirror(easing) {
384
- return (t) => {
385
- if (t < 0.5) {
386
- return easing(t * 2);
387
- }
388
- else {
389
- return easing(2 - t * 2);
390
- }
391
- };
392
- }
393
- }
394
- // 常用预设
395
- /** 平滑进入(常用于UI动画) */
396
- Easing.smoothIn = Easing.quadOut;
397
- /** 平滑退出(常用于UI动画) */
398
- Easing.smoothOut = Easing.quadIn;
399
- /** 快速进入(常用于出现动画) */
400
- Easing.quickIn = Easing.cubicOut;
401
- /** 快速退出(常用于消失动画) */
402
- Easing.quickOut = Easing.cubicIn;
403
- /** 自然运动(模拟物理) */
404
- Easing.natural = Easing.quartOut;
405
- /** 强调效果(吸引注意力) */
406
- Easing.emphasize = Easing.backOut;
407
- //# sourceMappingURL=Easing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Easing.js","sourceRoot":"","sources":["../../src/Animation/Easing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,OAAO,MAAM;IAEf,OAAO;IAEP;;;;KAIC;IACD,MAAM,CAAC,MAAM,CAAC,CAAS;QACnB,OAAO,CAAC,CAAC;IACb,CAAC;IAED,oBAAoB;IAEpB;;;;KAIC;IACD,MAAM,CAAC,MAAM,CAAC,CAAS;QACnB,OAAO,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IAED;;;;KAIC;IACD,MAAM,CAAC,OAAO,CAAC,CAAS;QACpB,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IAED;;;;KAIC;IACD,MAAM,CAAC,SAAS,CAAC,CAAS;QACtB,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,gBAAgB;IAEhB;;;;KAIC;IACD,MAAM,CAAC,OAAO,CAAC,CAAS;QACpB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED;;;;KAIC;IACD,MAAM,CAAC,QAAQ,CAAC,CAAS;QACrB,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,CAAC;IAED;;;;KAIC;IACD,MAAM,CAAC,UAAU,CAAC,CAAS;QACvB,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACrE,CAAC;IAED,kBAAkB;IAElB;;;;KAIC;IACD,MAAM,CAAC,OAAO,CAAC,CAAS;QACpB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED;;;;KAIC;IACD,MAAM,CAAC,QAAQ,CAAC,CAAS;QACrB,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,CAAC;IAED;;;;KAIC;IACD,MAAM,CAAC,UAAU,CAAC,CAAS;QACvB,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACzE,CAAC;IAED,kBAAkB;IAElB;;;;KAIC;IACD,MAAM,CAAC,OAAO,CAAC,CAAS;QACpB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;;;KAIC;IACD,MAAM,CAAC,QAAQ,CAAC,CAAS;QACrB,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,CAAC;IAED;;;;KAIC;IACD,MAAM,CAAC,UAAU,CAAC,CAAS;QACvB,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9E,CAAC;IAED,cAAc;IAEd;;;;KAIC;IACD,MAAM,CAAC,MAAM,CAAC,CAAS;QACnB,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED;;;;KAIC;IACD,MAAM,CAAC,OAAO,CAAC,CAAS;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED;;;;KAIC;IACD,MAAM,CAAC,SAAS,CAAC,CAAS;QACtB,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,qBAAqB;IAErB;;;;KAIC;IACD,MAAM,CAAC,MAAM,CAAC,CAAS;QACnB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;;;KAIC;IACD,MAAM,CAAC,OAAO,CAAC,CAAS;QACpB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC;IAED;;;;KAIC;IACD,MAAM,CAAC,SAAS,CAAC,CAAS;QACtB,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAEtB,OAAO,CAAC,GAAG,GAAG;YACV,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;YAC9B,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,kBAAkB;IAElB;;;;KAIC;IACD,MAAM,CAAC,MAAM,CAAC,CAAS;QACnB,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,CAAC;IAED;;;;KAIC;IACD,MAAM,CAAC,OAAO,CAAC,CAAS;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;;;KAIC;IACD,MAAM,CAAC,SAAS,CAAC,CAAS;QACtB,OAAO,CAAC,GAAG,GAAG;YACV,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACpC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/D,CAAC;IAED,cAAc;IAEd;;;;;KAKC;IACD,MAAM,CAAC,MAAM,CAAC,CAAS,EAAE,IAAY,OAAO;QACxC,MAAM,EAAE,GAAG,CAAC,CAAC;QACb,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAClB,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED;;;;;KAKC;IACD,MAAM,CAAC,OAAO,CAAC,CAAS,EAAE,IAAY,OAAO;QACzC,MAAM,EAAE,GAAG,CAAC,CAAC;QACb,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAClB,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IAED;;;;;KAKC;IACD,MAAM,CAAC,SAAS,CAAC,CAAS,EAAE,IAAY,OAAO;QAC3C,MAAM,EAAE,GAAG,CAAC,CAAC;QACb,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;QAEtB,OAAO,CAAC,GAAG,GAAG;YACV,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC;YACpD,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3E,CAAC;IAED,iBAAiB;IAEjB;;;;;;KAMC;IACD,MAAM,CAAC,SAAS,CAAC,CAAS,EAAE,YAAoB,CAAC,EAAE,SAAiB,GAAG;QACnE,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAEtB,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;QACrB,OAAO,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IACrG,CAAC;IAED;;;;;;KAMC;IACD,MAAM,CAAC,UAAU,CAAC,CAAS,EAAE,YAAoB,CAAC,EAAE,SAAiB,GAAG;QACpE,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAEtB,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;QACrB,OAAO,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7F,CAAC;IAED;;;;;;KAMC;IACD,MAAM,CAAC,YAAY,CAAC,CAAS,EAAE,YAAoB,CAAC,EAAE,SAAiB,IAAI;QACvE,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAEtB,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;QAErB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QACnH,CAAC;QAED,OAAO,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IACrH,CAAC;IAED,gBAAgB;IAEhB;;;;KAIC;IACD,MAAM,CAAC,QAAQ,CAAC,CAAS;QACrB,OAAO,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED;;;;KAIC;IACD,MAAM,CAAC,SAAS,CAAC,CAAS;QACtB,MAAM,EAAE,GAAG,MAAM,CAAC;QAClB,MAAM,EAAE,GAAG,IAAI,CAAC;QAEhB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC;YACb,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC;YACpB,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAC3C,CAAC;aAAM,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC;YACtB,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;QAC9C,CAAC;aAAM,CAAC;YACJ,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QACjD,CAAC;IACL,CAAC;IAED;;;;KAIC;IACD,MAAM,CAAC,WAAW,CAAC,CAAS;QACxB,OAAO,CAAC,GAAG,GAAG;YACV,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACvC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,OAAO;IAEP;;;;;KAKC;IACD,MAAM,CAAC,OAAO,CACV,eAA0C,EAC1C,OAAkB;QAElB,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACjF,CAAC;QAED,OAAO,CAAC,CAAS,EAAU,EAAE;YACzB,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC;IACN,CAAC;IAED;;;;KAIC;IACD,MAAM,CAAC,SAAS,CAAC,QAAkE;QACnF,UAAU;QACN,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAE3E,UAAU;QACV,MAAM,kBAAkB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC9C,GAAG,GAAG;YACN,QAAQ,EAAE,GAAG,CAAC,QAAQ,GAAG,aAAa;SACzC,CAAC,CAAC,CAAC;QAEJ,OAAO,CAAC,CAAS,EAAU,EAAE;YACzB,IAAI,eAAe,GAAG,CAAC,CAAC;YAExB,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;gBACvC,IAAI,CAAC,IAAI,eAAe,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAC1C,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;oBACxD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC5D,CAAC;gBACD,eAAe,IAAI,OAAO,CAAC,QAAQ,CAAC;YACxC,CAAC;YAED,oBAAoB;YACpB,OAAO,kBAAkB,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC,CAAC;IACN,CAAC;IAED;;;;KAIC;IACD,MAAM,CAAC,OAAO,CAAC,MAA6B;QACxC,OAAO,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;;;KAIC;IACD,MAAM,CAAC,MAAM,CAAC,MAA6B;QACvC,OAAO,CAAC,CAAS,EAAU,EAAE;YACzB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;gBACV,OAAO,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACJ,OAAO,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7B,CAAC;QACL,CAAC,CAAC;IACN,CAAC;;AAED,OAAO;AAEP,oBAAoB;AACJ,eAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AAE1C,oBAAoB;AACJ,gBAAS,GAAG,MAAM,CAAC,MAAM,CAAC;AAE1C,oBAAoB;AACJ,cAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;AAE1C,oBAAoB;AACJ,eAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AAE1C,iBAAiB;AACD,cAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;AAE1C,kBAAkB;AACF,gBAAS,GAAG,MAAM,CAAC,OAAO,CAAC"}
@@ -1,172 +0,0 @@
1
- import { Vector2 } from '../Vector2';
2
- /**
3
- * 插值器类型定义
4
- */
5
- export type InterpolatorFunction<T> = (from: T, to: T, t: number) => T;
6
- /**
7
- * 关键帧数据结构
8
- */
9
- export interface Keyframe<T> {
10
- time: number;
11
- value: T;
12
- easing?: (t: number) => number;
13
- }
14
- /**
15
- * 带缓存的插值器类
16
- * 用于需要重复插值相同起始和目标值的情况
17
- */
18
- export declare class CachedInterpolator<T> {
19
- private from?;
20
- private to?;
21
- private interpolator;
22
- private cache;
23
- constructor(interpolator: InterpolatorFunction<T>);
24
- /**
25
- * 设置插值范围
26
- * @param from 起始值
27
- * @param to 目标值
28
- */
29
- setRange(from: T, to: T): void;
30
- /**
31
- * 获取插值结果
32
- * @param t 插值参数
33
- * @returns 插值结果
34
- */
35
- get(t: number): T;
36
- /**
37
- * 清空缓存
38
- */
39
- clearCache(): void;
40
- }
41
- /**
42
- * 插值工具类
43
- *
44
- * 提供各种类型的插值功能,用于创建平滑的数值变化
45
- */
46
- export declare class Interpolation {
47
- /**
48
- * 数值线性插值
49
- * @param from 起始值
50
- * @param to 目标值
51
- * @param t 插值参数 (0-1)
52
- * @returns 插值结果
53
- */
54
- static number(from: number, to: number, t: number): number;
55
- /**
56
- * 向量线性插值
57
- * @param from 起始向量
58
- * @param to 目标向量
59
- * @param t 插值参数 (0-1)
60
- * @returns 插值结果向量
61
- */
62
- static vector2(from: Vector2, to: Vector2, t: number): Vector2;
63
- /**
64
- * 角度插值(处理角度环绕)
65
- * @param from 起始角度(弧度)
66
- * @param to 目标角度(弧度)
67
- * @param t 插值参数 (0-1)
68
- * @returns 插值结果角度
69
- */
70
- static angle(from: number, to: number, t: number): number;
71
- /**
72
- * 颜色插值(RGB)
73
- * @param from 起始颜色 [r, g, b, a?]
74
- * @param to 目标颜色 [r, g, b, a?]
75
- * @param t 插值参数 (0-1)
76
- * @returns 插值结果颜色
77
- */
78
- static color(from: number[], to: number[], t: number): number[];
79
- /**
80
- * 三次样条插值
81
- * @param p0 控制点0
82
- * @param p1 控制点1(起点)
83
- * @param p2 控制点2(终点)
84
- * @param p3 控制点3
85
- * @param t 插值参数 (0-1)
86
- * @returns 插值结果
87
- */
88
- static cubicSpline(p0: number, p1: number, p2: number, p3: number, t: number): number;
89
- /**
90
- * Hermite插值
91
- * @param p0 起始点
92
- * @param m0 起始切线
93
- * @param p1 结束点
94
- * @param m1 结束切线
95
- * @param t 插值参数 (0-1)
96
- * @returns 插值结果
97
- */
98
- static hermite(p0: number, m0: number, p1: number, m1: number, t: number): number;
99
- /**
100
- * 球面线性插值(适用于方向向量)
101
- * @param from 起始单位向量
102
- * @param to 目标单位向量
103
- * @param t 插值参数 (0-1)
104
- * @returns 插值结果向量
105
- */
106
- static slerp(from: Vector2, to: Vector2, t: number): Vector2;
107
- /**
108
- * 创建带缓存的插值器
109
- * 用于需要重复插值相同起始和目标值的情况
110
- * @param interpolator 插值函数
111
- * @returns 缓存插值器实例
112
- */
113
- static createCachedInterpolator<T>(interpolator: InterpolatorFunction<T>): CachedInterpolator<T>;
114
- /**
115
- * 样条曲线插值(通过多个控制点)
116
- * @param points 控制点数组
117
- * @param t 插值参数 (0-1)
118
- * @returns 插值结果
119
- */
120
- static spline(points: number[], t: number): number;
121
- /**
122
- * 向量样条曲线插值
123
- * @param points 控制点数组
124
- * @param t 插值参数 (0-1)
125
- * @returns 插值结果向量
126
- */
127
- static vectorSpline(points: Vector2[], t: number): Vector2;
128
- /**
129
- * 关键帧动画插值
130
- * @param keyframes 关键帧数组(按时间排序)
131
- * @param time 当前时间
132
- * @param interpolator 插值函数
133
- * @returns 插值结果
134
- */
135
- static keyframe<T>(keyframes: Keyframe<T>[], time: number, interpolator: InterpolatorFunction<T>): T;
136
- /**
137
- * 路径插值(沿着由点组成的路径)
138
- * @param path 路径点数组
139
- * @param t 插值参数 (0-1)
140
- * @param closed 是否为闭合路径
141
- * @returns 路径上的点
142
- */
143
- static pathInterpolation(path: Vector2[], t: number, closed?: boolean): Vector2;
144
- /**
145
- * 计算路径总长度
146
- * @param path 路径点数组
147
- * @param closed 是否为闭合路径
148
- * @returns 路径总长度
149
- */
150
- static getPathLength(path: Vector2[], closed?: boolean): number;
151
- /**
152
- * 创建数值插值器
153
- * @param from 起始值
154
- * @param to 目标值
155
- * @returns 插值器函数
156
- */
157
- static createNumberInterpolator(from: number, to: number): (t: number) => number;
158
- /**
159
- * 创建向量插值器
160
- * @param from 起始向量
161
- * @param to 目标向量
162
- * @returns 插值器函数
163
- */
164
- static createVectorInterpolator(from: Vector2, to: Vector2): (t: number) => Vector2;
165
- /**
166
- * 创建组合插值器(插值多个值)
167
- * @param interpolators 插值器数组
168
- * @returns 组合插值器函数
169
- */
170
- static createCompositeInterpolator<T>(interpolators: InterpolatorFunction<T>[]): (from: T[], to: T[], t: number) => T[];
171
- }
172
- //# sourceMappingURL=Interpolation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Interpolation.d.ts","sourceRoot":"","sources":["../../src/Animation/Interpolation.ts"],"names":[],"mappings":"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"}