@esengine/ecs-framework-math 2.10.1 → 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 +20 -11
  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,312 +0,0 @@
1
- import { Vector2 } from './Vector2';
2
- /**
3
- * 数学工具函数集合
4
- *
5
- * 提供常用的数学运算、插值、随机数生成等实用工具函数
6
- */
7
- export declare class MathUtils {
8
- /** 圆周率 */
9
- static readonly PI: number;
10
- /** 2π */
11
- static readonly TWO_PI: number;
12
- /** π/2 */
13
- static readonly HALF_PI: number;
14
- /** π/4 */
15
- static readonly QUARTER_PI: number;
16
- /** 角度到弧度转换系数 */
17
- static readonly DEG_TO_RAD: number;
18
- /** 弧度到角度转换系数 */
19
- static readonly RAD_TO_DEG: number;
20
- /** 黄金比例 */
21
- static readonly GOLDEN_RATIO: number;
22
- /** 默认浮点数比较容差 */
23
- static readonly EPSILON: number;
24
- /**
25
- * 角度转弧度
26
- * @param degrees 角度值
27
- * @returns 弧度值
28
- */
29
- static degToRad(degrees: number): number;
30
- /**
31
- * 弧度转角度
32
- * @param radians 弧度值
33
- * @returns 角度值
34
- */
35
- static radToDeg(radians: number): number;
36
- /**
37
- * 规范化角度到[0, 2π)范围
38
- * @param radians 角度(弧度)
39
- * @returns 规范化后的角度
40
- */
41
- static normalizeAngle(radians: number): number;
42
- /**
43
- * 规范化角度到(-π, π]范围
44
- * @param radians 角度(弧度)
45
- * @returns 规范化后的角度
46
- */
47
- static normalizeAngleSigned(radians: number): number;
48
- /**
49
- * 计算两个角度之间的最短角度差
50
- * @param from 起始角度(弧度)
51
- * @param to 目标角度(弧度)
52
- * @returns 角度差(-π到π)
53
- */
54
- static angleDifference(from: number, to: number): number;
55
- /**
56
- * 角度插值(处理角度环绕)
57
- * @param from 起始角度(弧度)
58
- * @param to 目标角度(弧度)
59
- * @param t 插值参数(0到1)
60
- * @returns 插值结果角度
61
- */
62
- static lerpAngle(from: number, to: number, t: number): number;
63
- /**
64
- * 限制数值在指定范围内
65
- * @param value 待限制的值
66
- * @param min 最小值
67
- * @param max 最大值
68
- * @returns 限制后的值
69
- */
70
- static clamp(value: number, min: number, max: number): number;
71
- /**
72
- * 限制数值在0到1之间
73
- * @param value 待限制的值
74
- * @returns 限制后的值
75
- */
76
- static clamp01(value: number): number;
77
- /**
78
- * 线性插值
79
- * @param a 起始值
80
- * @param b 目标值
81
- * @param t 插值参数(0到1)
82
- * @returns 插值结果
83
- */
84
- static lerp(a: number, b: number, t: number): number;
85
- /**
86
- * 反向线性插值(获取插值参数)
87
- * @param a 起始值
88
- * @param b 目标值
89
- * @param value 当前值
90
- * @returns 插值参数
91
- */
92
- static inverseLerp(a: number, b: number, value: number): number;
93
- /**
94
- * 重映射数值从一个范围到另一个范围
95
- * @param value 输入值
96
- * @param inMin 输入范围最小值
97
- * @param inMax 输入范围最大值
98
- * @param outMin 输出范围最小值
99
- * @param outMax 输出范围最大值
100
- * @returns 重映射后的值
101
- */
102
- static remap(value: number, inMin: number, inMax: number, outMin: number, outMax: number): number;
103
- /**
104
- * 平滑阶跃函数(Hermite插值)
105
- * @param t 输入参数(0到1)
106
- * @returns 平滑输出(0到1)
107
- */
108
- static smoothStep(t: number): number;
109
- /**
110
- * 更平滑的阶跃函数
111
- * @param t 输入参数(0到1)
112
- * @returns 平滑输出(0到1)
113
- */
114
- static smootherStep(t: number): number;
115
- /**
116
- * 浮点数相等比较
117
- * @param a 数值a
118
- * @param b 数值b
119
- * @param epsilon 容差,默认为EPSILON
120
- * @returns 是否相等
121
- */
122
- static approximately(a: number, b: number, epsilon?: number): boolean;
123
- /**
124
- * 检查数值是否为零
125
- * @param value 数值
126
- * @param epsilon 容差,默认为EPSILON
127
- * @returns 是否为零
128
- */
129
- static isZero(value: number, epsilon?: number): boolean;
130
- /**
131
- * 获取数值的符号
132
- * @param value 数值
133
- * @returns 1、-1或0
134
- */
135
- static sign(value: number): number;
136
- /**
137
- * 生成指定范围内的随机数
138
- * @param min 最小值(包含)
139
- * @param max 最大值(不包含)
140
- * @returns 随机数
141
- */
142
- static random(min?: number, max?: number): number;
143
- /**
144
- * 生成指定范围内的随机整数
145
- * @param min 最小值(包含)
146
- * @param max 最大值(包含)
147
- * @returns 随机整数
148
- */
149
- static randomInt(min: number, max: number): number;
150
- /**
151
- * 随机选择数组中的一个元素
152
- * @param array 数组
153
- * @returns 随机元素
154
- */
155
- static randomChoice<T>(array: T[]): T;
156
- /**
157
- * 生成随机布尔值
158
- * @param probability 为true的概率(0到1),默认0.5
159
- * @returns 随机布尔值
160
- */
161
- static randomBoolean(probability?: number): boolean;
162
- /**
163
- * 生成单位圆内的随机点
164
- * @returns 随机向量
165
- */
166
- static randomInUnitCircle(): Vector2;
167
- /**
168
- * 生成单位圆上的随机点
169
- * @returns 随机单位向量
170
- */
171
- static randomOnUnitCircle(): Vector2;
172
- /**
173
- * 快速平方根倒数(用于归一化)
174
- * @param value 输入值
175
- * @returns 平方根倒数
176
- */
177
- static fastInverseSqrt(value: number): number;
178
- /**
179
- * 快速幂运算(整数指数)
180
- * @param base 底数
181
- * @param exponent 指数(整数)
182
- * @returns 幂运算结果
183
- */
184
- static fastPow(base: number, exponent: number): number;
185
- /**
186
- * 阶乘
187
- * @param n 非负整数
188
- * @returns 阶乘结果
189
- */
190
- static factorial(n: number): number;
191
- /**
192
- * 最大公约数
193
- * @param a 整数a
194
- * @param b 整数b
195
- * @returns 最大公约数
196
- */
197
- static gcd(a: number, b: number): number;
198
- /**
199
- * 最小公倍数
200
- * @param a 整数a
201
- * @param b 整数b
202
- * @returns 最小公倍数
203
- */
204
- static lcm(a: number, b: number): number;
205
- /**
206
- * 斐波那契数列
207
- * @param n 项数
208
- * @returns 第n项斐波那契数
209
- */
210
- static fibonacci(n: number): number;
211
- /**
212
- * 等差数列求和
213
- * @param first 首项
214
- * @param last 末项
215
- * @param count 项数
216
- * @returns 等差数列和
217
- */
218
- static arithmeticSum(first: number, last: number, count: number): number;
219
- /**
220
- * 等比数列求和
221
- * @param first 首项
222
- * @param ratio 公比
223
- * @param count 项数
224
- * @returns 等比数列和
225
- */
226
- static geometricSum(first: number, ratio: number, count: number): number;
227
- /**
228
- * 贝塞尔二次曲线
229
- * @param p0 控制点0
230
- * @param p1 控制点1
231
- * @param p2 控制点2
232
- * @param t 参数(0到1)
233
- * @returns 曲线上的点
234
- */
235
- static quadraticBezier(p0: Vector2, p1: Vector2, p2: Vector2, t: number): Vector2;
236
- /**
237
- * 贝塞尔三次曲线
238
- * @param p0 控制点0
239
- * @param p1 控制点1
240
- * @param p2 控制点2
241
- * @param p3 控制点3
242
- * @param t 参数(0到1)
243
- * @returns 曲线上的点
244
- */
245
- static cubicBezier(p0: Vector2, p1: Vector2, p2: Vector2, p3: Vector2, t: number): Vector2;
246
- /**
247
- * Catmull-Rom样条插值
248
- * @param p0 控制点0
249
- * @param p1 控制点1
250
- * @param p2 控制点2
251
- * @param p3 控制点3
252
- * @param t 参数(0到1)
253
- * @returns 插值结果点
254
- */
255
- static catmullRom(p0: Vector2, p1: Vector2, p2: Vector2, p3: Vector2, t: number): Vector2;
256
- /**
257
- * 简单伪随机噪声(基于种子)
258
- * @param x 输入X
259
- * @param y 输入Y
260
- * @param seed 种子
261
- * @returns 噪声值(0到1)
262
- */
263
- static noise(x: number, y?: number, seed?: number): number;
264
- /**
265
- * 平滑噪声
266
- * @param x 输入X
267
- * @param y 输入Y
268
- * @param seed 种子
269
- * @returns 平滑噪声值(0到1)
270
- */
271
- static smoothNoise(x: number, y?: number, seed?: number): number;
272
- /**
273
- * 将数值转换为指定精度
274
- * @param value 数值
275
- * @param precision 精度(小数位数)
276
- * @returns 转换后的数值
277
- */
278
- static toPrecision(value: number, precision: number): number;
279
- /**
280
- * 检查数值是否在指定范围内
281
- * @param value 数值
282
- * @param min 最小值
283
- * @param max 最大值
284
- * @returns 是否在范围内
285
- */
286
- static inRange(value: number, min: number, max: number): boolean;
287
- /**
288
- * 获取数组中的最小值
289
- * @param values 数值数组
290
- * @returns 最小值
291
- */
292
- static min(...values: number[]): number;
293
- /**
294
- * 获取数组中的最大值
295
- * @param values 数值数组
296
- * @returns 最大值
297
- */
298
- static max(...values: number[]): number;
299
- /**
300
- * 计算数组的平均值
301
- * @param values 数值数组
302
- * @returns 平均值
303
- */
304
- static average(values: number[]): number;
305
- /**
306
- * 计算数组的中位数
307
- * @param values 数值数组
308
- * @returns 中位数
309
- */
310
- static median(values: number[]): number;
311
- }
312
- //# sourceMappingURL=MathUtils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MathUtils.d.ts","sourceRoot":"","sources":["../src/MathUtils.ts"],"names":[],"mappings":"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"}