@esengine/ecs-framework-math 1.0.3 → 2.8.0

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 (60) hide show
  1. package/LICENSE +21 -0
  2. package/bin/Animation/Easing.d.ts +150 -150
  3. package/bin/Animation/Easing.d.ts.map +1 -1
  4. package/bin/Animation/Easing.js +151 -151
  5. package/bin/Animation/Easing.js.map +1 -1
  6. package/bin/Animation/Interpolation.d.ts +102 -102
  7. package/bin/Animation/Interpolation.d.ts.map +1 -1
  8. package/bin/Animation/Interpolation.js +104 -104
  9. package/bin/Animation/Interpolation.js.map +1 -1
  10. package/bin/Animation/index.d.ts.map +1 -1
  11. package/bin/Animation/index.js.map +1 -1
  12. package/bin/Circle.d.ts +159 -159
  13. package/bin/Circle.d.ts.map +1 -1
  14. package/bin/Circle.js +159 -159
  15. package/bin/Circle.js.map +1 -1
  16. package/bin/Collision/CollisionDetector.d.ts +64 -64
  17. package/bin/Collision/CollisionDetector.d.ts.map +1 -1
  18. package/bin/Collision/CollisionDetector.js +66 -66
  19. package/bin/Collision/CollisionDetector.js.map +1 -1
  20. package/bin/Color.d.ts +277 -0
  21. package/bin/Color.d.ts.map +1 -0
  22. package/bin/Color.js +470 -0
  23. package/bin/Color.js.map +1 -0
  24. package/bin/Fixed32.d.ts +266 -0
  25. package/bin/Fixed32.d.ts.map +1 -0
  26. package/bin/Fixed32.js +381 -0
  27. package/bin/Fixed32.js.map +1 -0
  28. package/bin/FixedMath.d.ts +109 -0
  29. package/bin/FixedMath.d.ts.map +1 -0
  30. package/bin/FixedMath.js +264 -0
  31. package/bin/FixedMath.js.map +1 -0
  32. package/bin/FixedVector2.d.ts +293 -0
  33. package/bin/FixedVector2.d.ts.map +1 -0
  34. package/bin/FixedVector2.js +413 -0
  35. package/bin/FixedVector2.js.map +1 -0
  36. package/bin/MathUtils.d.ts +205 -205
  37. package/bin/MathUtils.d.ts.map +1 -1
  38. package/bin/MathUtils.js +206 -206
  39. package/bin/MathUtils.js.map +1 -1
  40. package/bin/Matrix3.d.ts +158 -139
  41. package/bin/Matrix3.d.ts.map +1 -1
  42. package/bin/Matrix3.js +179 -151
  43. package/bin/Matrix3.js.map +1 -1
  44. package/bin/Rectangle.d.ts +144 -144
  45. package/bin/Rectangle.d.ts.map +1 -1
  46. package/bin/Rectangle.js +144 -144
  47. package/bin/Rectangle.js.map +1 -1
  48. package/bin/Vector2.d.ts +202 -186
  49. package/bin/Vector2.d.ts.map +1 -1
  50. package/bin/Vector2.js +198 -188
  51. package/bin/Vector2.js.map +1 -1
  52. package/bin/Vector3.d.ts +257 -0
  53. package/bin/Vector3.d.ts.map +1 -0
  54. package/bin/Vector3.js +372 -0
  55. package/bin/Vector3.js.map +1 -0
  56. package/bin/index.d.ts +8 -1
  57. package/bin/index.d.ts.map +1 -1
  58. package/bin/index.js +9 -0
  59. package/bin/index.js.map +1 -1
  60. package/package.json +66 -67
package/bin/Rectangle.js CHANGED
@@ -10,12 +10,12 @@ import { Vector2 } from './Vector2';
10
10
  */
11
11
  export class Rectangle {
12
12
  /**
13
- * 创建矩形
14
- * @param x 左上角X坐标,默认为0
15
- * @param y 左上角Y坐标,默认为0
16
- * @param width 宽度,默认为0
17
- * @param height 高度,默认为0
18
- */
13
+ * 创建矩形
14
+ * @param x 左上角X坐标,默认为0
15
+ * @param y 左上角Y坐标,默认为0
16
+ * @param width 宽度,默认为0
17
+ * @param height 高度,默认为0
18
+ */
19
19
  constructor(x = 0, y = 0, width = 0, height = 0) {
20
20
  this.x = x;
21
21
  this.y = y;
@@ -85,13 +85,13 @@ export class Rectangle {
85
85
  }
86
86
  // 基础操作
87
87
  /**
88
- * 设置矩形属性
89
- * @param x 左上角X坐标
90
- * @param y 左上角Y坐标
91
- * @param width 宽度
92
- * @param height 高度
93
- * @returns 当前矩形实例(链式调用)
94
- */
88
+ * 设置矩形属性
89
+ * @param x 左上角X坐标
90
+ * @param y 左上角Y坐标
91
+ * @param width 宽度
92
+ * @param height 高度
93
+ * @returns 当前矩形实例(链式调用)
94
+ */
95
95
  set(x, y, width, height) {
96
96
  this.x = x;
97
97
  this.y = y;
@@ -100,10 +100,10 @@ export class Rectangle {
100
100
  return this;
101
101
  }
102
102
  /**
103
- * 复制另一个矩形的值
104
- * @param other 源矩形
105
- * @returns 当前矩形实例(链式调用)
106
- */
103
+ * 复制另一个矩形的值
104
+ * @param other 源矩形
105
+ * @returns 当前矩形实例(链式调用)
106
+ */
107
107
  copy(other) {
108
108
  this.x = other.x;
109
109
  this.y = other.y;
@@ -112,40 +112,40 @@ export class Rectangle {
112
112
  return this;
113
113
  }
114
114
  /**
115
- * 克隆当前矩形
116
- * @returns 新的矩形实例
117
- */
115
+ * 克隆当前矩形
116
+ * @returns 新的矩形实例
117
+ */
118
118
  clone() {
119
119
  return new Rectangle(this.x, this.y, this.width, this.height);
120
120
  }
121
121
  /**
122
- * 设置矩形位置
123
- * @param x 新的X坐标
124
- * @param y 新的Y坐标
125
- * @returns 当前矩形实例(链式调用)
126
- */
122
+ * 设置矩形位置
123
+ * @param x 新的X坐标
124
+ * @param y 新的Y坐标
125
+ * @returns 当前矩形实例(链式调用)
126
+ */
127
127
  setPosition(x, y) {
128
128
  this.x = x;
129
129
  this.y = y;
130
130
  return this;
131
131
  }
132
132
  /**
133
- * 设置矩形大小
134
- * @param width 新的宽度
135
- * @param height 新的高度
136
- * @returns 当前矩形实例(链式调用)
137
- */
133
+ * 设置矩形大小
134
+ * @param width 新的宽度
135
+ * @param height 新的高度
136
+ * @returns 当前矩形实例(链式调用)
137
+ */
138
138
  setSize(width, height) {
139
139
  this.width = width;
140
140
  this.height = height;
141
141
  return this;
142
142
  }
143
143
  /**
144
- * 设置矩形中心点
145
- * @param centerX 中心X坐标
146
- * @param centerY 中心Y坐标
147
- * @returns 当前矩形实例(链式调用)
148
- */
144
+ * 设置矩形中心点
145
+ * @param centerX 中心X坐标
146
+ * @param centerY 中心Y坐标
147
+ * @returns 当前矩形实例(链式调用)
148
+ */
149
149
  setCenter(centerX, centerY) {
150
150
  this.x = centerX - this.width * 0.5;
151
151
  this.y = centerY - this.height * 0.5;
@@ -153,22 +153,22 @@ export class Rectangle {
153
153
  }
154
154
  // 变换操作
155
155
  /**
156
- * 平移矩形
157
- * @param dx X方向偏移
158
- * @param dy Y方向偏移
159
- * @returns 当前矩形实例(链式调用)
160
- */
156
+ * 平移矩形
157
+ * @param dx X方向偏移
158
+ * @param dy Y方向偏移
159
+ * @returns 当前矩形实例(链式调用)
160
+ */
161
161
  translate(dx, dy) {
162
162
  this.x += dx;
163
163
  this.y += dy;
164
164
  return this;
165
165
  }
166
166
  /**
167
- * 缩放矩形(从中心缩放)
168
- * @param scaleX X方向缩放因子
169
- * @param scaleY Y方向缩放因子,默认等于scaleX
170
- * @returns 当前矩形实例(链式调用)
171
- */
167
+ * 缩放矩形(从中心缩放)
168
+ * @param scaleX X方向缩放因子
169
+ * @param scaleY Y方向缩放因子,默认等于scaleX
170
+ * @returns 当前矩形实例(链式调用)
171
+ */
172
172
  scale(scaleX, scaleY = scaleX) {
173
173
  const centerX = this.centerX;
174
174
  const centerY = this.centerY;
@@ -177,10 +177,10 @@ export class Rectangle {
177
177
  return this.setCenter(centerX, centerY);
178
178
  }
179
179
  /**
180
- * 扩展矩形
181
- * @param amount 扩展量(正值扩大,负值缩小)
182
- * @returns 当前矩形实例(链式调用)
183
- */
180
+ * 扩展矩形
181
+ * @param amount 扩展量(正值扩大,负值缩小)
182
+ * @returns 当前矩形实例(链式调用)
183
+ */
184
184
  inflate(amount) {
185
185
  this.x -= amount;
186
186
  this.y -= amount;
@@ -189,11 +189,11 @@ export class Rectangle {
189
189
  return this;
190
190
  }
191
191
  /**
192
- * 扩展矩形(分别指定水平和垂直方向)
193
- * @param horizontal 水平方向扩展量
194
- * @param vertical 垂直方向扩展量
195
- * @returns 当前矩形实例(链式调用)
196
- */
192
+ * 扩展矩形(分别指定水平和垂直方向)
193
+ * @param horizontal 水平方向扩展量
194
+ * @param vertical 垂直方向扩展量
195
+ * @returns 当前矩形实例(链式调用)
196
+ */
197
197
  inflateXY(horizontal, vertical) {
198
198
  this.x -= horizontal;
199
199
  this.y -= vertical;
@@ -203,48 +203,48 @@ export class Rectangle {
203
203
  }
204
204
  // 包含检测
205
205
  /**
206
- * 检查是否包含指定点
207
- * @param point 点
208
- * @returns 是否包含
209
- */
206
+ * 检查是否包含指定点
207
+ * @param point 点
208
+ * @returns 是否包含
209
+ */
210
210
  containsPoint(point) {
211
211
  return point.x >= this.x && point.x <= this.right &&
212
212
  point.y >= this.y && point.y <= this.bottom;
213
213
  }
214
214
  /**
215
- * 检查是否包含指定坐标
216
- * @param x X坐标
217
- * @param y Y坐标
218
- * @returns 是否包含
219
- */
215
+ * 检查是否包含指定坐标
216
+ * @param x X坐标
217
+ * @param y Y坐标
218
+ * @returns 是否包含
219
+ */
220
220
  contains(x, y) {
221
221
  return x >= this.x && x <= this.right &&
222
222
  y >= this.y && y <= this.bottom;
223
223
  }
224
224
  /**
225
- * 检查是否完全包含另一个矩形
226
- * @param other 另一个矩形
227
- * @returns 是否完全包含
228
- */
225
+ * 检查是否完全包含另一个矩形
226
+ * @param other 另一个矩形
227
+ * @returns 是否完全包含
228
+ */
229
229
  containsRect(other) {
230
230
  return this.x <= other.x && this.y <= other.y &&
231
231
  this.right >= other.right && this.bottom >= other.bottom;
232
232
  }
233
233
  // 相交检测
234
234
  /**
235
- * 检查是否与另一个矩形相交
236
- * @param other 另一个矩形
237
- * @returns 是否相交
238
- */
235
+ * 检查是否与另一个矩形相交
236
+ * @param other 另一个矩形
237
+ * @returns 是否相交
238
+ */
239
239
  intersects(other) {
240
240
  return this.x < other.right && this.right > other.x &&
241
241
  this.y < other.bottom && this.bottom > other.y;
242
242
  }
243
243
  /**
244
- * 计算与另一个矩形的相交矩形
245
- * @param other 另一个矩形
246
- * @returns 相交矩形,如果不相交返回空矩形
247
- */
244
+ * 计算与另一个矩形的相交矩形
245
+ * @param other 另一个矩形
246
+ * @returns 相交矩形,如果不相交返回空矩形
247
+ */
248
248
  intersection(other) {
249
249
  if (!this.intersects(other)) {
250
250
  return Rectangle.EMPTY.clone();
@@ -256,10 +256,10 @@ export class Rectangle {
256
256
  return new Rectangle(x, y, right - x, bottom - y);
257
257
  }
258
258
  /**
259
- * 计算与另一个矩形的并集矩形
260
- * @param other 另一个矩形
261
- * @returns 并集矩形
262
- */
259
+ * 计算与另一个矩形的并集矩形
260
+ * @param other 另一个矩形
261
+ * @returns 并集矩形
262
+ */
263
263
  union(other) {
264
264
  const x = Math.min(this.x, other.x);
265
265
  const y = Math.min(this.y, other.y);
@@ -268,30 +268,30 @@ export class Rectangle {
268
268
  return new Rectangle(x, y, right - x, bottom - y);
269
269
  }
270
270
  /**
271
- * 计算相交面积
272
- * @param other 另一个矩形
273
- * @returns 相交面积
274
- */
271
+ * 计算相交面积
272
+ * @param other 另一个矩形
273
+ * @returns 相交面积
274
+ */
275
275
  intersectionArea(other) {
276
276
  const intersection = this.intersection(other);
277
277
  return intersection.isEmpty ? 0 : intersection.area;
278
278
  }
279
279
  // 距离计算
280
280
  /**
281
- * 计算点到矩形的最短距离
282
- * @param point 点
283
- * @returns 最短距离
284
- */
281
+ * 计算点到矩形的最短距离
282
+ * @param point 点
283
+ * @returns 最短距离
284
+ */
285
285
  distanceToPoint(point) {
286
286
  const dx = Math.max(0, Math.max(this.x - point.x, point.x - this.right));
287
287
  const dy = Math.max(0, Math.max(this.y - point.y, point.y - this.bottom));
288
288
  return Math.sqrt(dx * dx + dy * dy);
289
289
  }
290
290
  /**
291
- * 计算两个矩形间的最短距离
292
- * @param other 另一个矩形
293
- * @returns 最短距离(相交时为0)
294
- */
291
+ * 计算两个矩形间的最短距离
292
+ * @param other 另一个矩形
293
+ * @returns 最短距离(相交时为0)
294
+ */
295
295
  distanceToRect(other) {
296
296
  if (this.intersects(other)) {
297
297
  return 0;
@@ -301,20 +301,20 @@ export class Rectangle {
301
301
  return Math.sqrt(dx * dx + dy * dy);
302
302
  }
303
303
  /**
304
- * 获取矩形上距离指定点最近的点
305
- * @param point 指定点
306
- * @returns 最近点
307
- */
304
+ * 获取矩形上距离指定点最近的点
305
+ * @param point 指定点
306
+ * @returns 最近点
307
+ */
308
308
  closestPointTo(point) {
309
309
  return new Vector2(Math.max(this.x, Math.min(this.right, point.x)), Math.max(this.y, Math.min(this.bottom, point.y)));
310
310
  }
311
311
  // 比较操作
312
312
  /**
313
- * 检查两个矩形是否相等
314
- * @param other 另一个矩形
315
- * @param epsilon 容差,默认为Number.EPSILON
316
- * @returns 是否相等
317
- */
313
+ * 检查两个矩形是否相等
314
+ * @param other 另一个矩形
315
+ * @param epsilon 容差,默认为Number.EPSILON
316
+ * @returns 是否相等
317
+ */
318
318
  equals(other, epsilon = Number.EPSILON) {
319
319
  return Math.abs(this.x - other.x) < epsilon &&
320
320
  Math.abs(this.y - other.y) < epsilon &&
@@ -322,32 +322,32 @@ export class Rectangle {
322
322
  Math.abs(this.height - other.height) < epsilon;
323
323
  }
324
324
  /**
325
- * 检查两个矩形是否完全相等
326
- * @param other 另一个矩形
327
- * @returns 是否完全相等
328
- */
325
+ * 检查两个矩形是否完全相等
326
+ * @param other 另一个矩形
327
+ * @returns 是否完全相等
328
+ */
329
329
  exactEquals(other) {
330
330
  return this.x === other.x && this.y === other.y &&
331
331
  this.width === other.width && this.height === other.height;
332
332
  }
333
333
  // 静态方法
334
334
  /**
335
- * 从中心点和大小创建矩形
336
- * @param centerX 中心X坐标
337
- * @param centerY 中心Y坐标
338
- * @param width 宽度
339
- * @param height 高度
340
- * @returns 新的矩形实例
341
- */
335
+ * 从中心点和大小创建矩形
336
+ * @param centerX 中心X坐标
337
+ * @param centerY 中心Y坐标
338
+ * @param width 宽度
339
+ * @param height 高度
340
+ * @returns 新的矩形实例
341
+ */
342
342
  static fromCenter(centerX, centerY, width, height) {
343
343
  return new Rectangle(centerX - width * 0.5, centerY - height * 0.5, width, height);
344
344
  }
345
345
  /**
346
- * 从两个点创建矩形
347
- * @param point1 第一个点
348
- * @param point2 第二个点
349
- * @returns 新的矩形实例
350
- */
346
+ * 从两个点创建矩形
347
+ * @param point1 第一个点
348
+ * @param point2 第二个点
349
+ * @returns 新的矩形实例
350
+ */
351
351
  static fromPoints(point1, point2) {
352
352
  const x = Math.min(point1.x, point2.x);
353
353
  const y = Math.min(point1.y, point2.y);
@@ -356,10 +356,10 @@ export class Rectangle {
356
356
  return new Rectangle(x, y, width, height);
357
357
  }
358
358
  /**
359
- * 从点数组创建包围矩形
360
- * @param points 点数组
361
- * @returns 包围矩形
362
- */
359
+ * 从点数组创建包围矩形
360
+ * @param points 点数组
361
+ * @returns 包围矩形
362
+ */
363
363
  static fromPointArray(points) {
364
364
  if (points.length === 0) {
365
365
  return Rectangle.EMPTY.clone();
@@ -377,51 +377,51 @@ export class Rectangle {
377
377
  return new Rectangle(minX, minY, maxX - minX, maxY - minY);
378
378
  }
379
379
  /**
380
- * 创建正方形
381
- * @param x 左上角X坐标
382
- * @param y 左上角Y坐标
383
- * @param size 边长
384
- * @returns 新的正方形矩形
385
- */
380
+ * 创建正方形
381
+ * @param x 左上角X坐标
382
+ * @param y 左上角Y坐标
383
+ * @param size 边长
384
+ * @returns 新的正方形矩形
385
+ */
386
386
  static square(x, y, size) {
387
387
  return new Rectangle(x, y, size, size);
388
388
  }
389
389
  /**
390
- * 线性插值两个矩形
391
- * @param a 起始矩形
392
- * @param b 目标矩形
393
- * @param t 插值参数(0到1)
394
- * @returns 新的插值结果矩形
395
- */
390
+ * 线性插值两个矩形
391
+ * @param a 起始矩形
392
+ * @param b 目标矩形
393
+ * @param t 插值参数(0到1)
394
+ * @returns 新的插值结果矩形
395
+ */
396
396
  static lerp(a, b, t) {
397
397
  return new Rectangle(a.x + (b.x - a.x) * t, a.y + (b.y - a.y) * t, a.width + (b.width - a.width) * t, a.height + (b.height - a.height) * t);
398
398
  }
399
399
  // 字符串转换
400
400
  /**
401
- * 转换为字符串
402
- * @returns 字符串表示
403
- */
401
+ * 转换为字符串
402
+ * @returns 字符串表示
403
+ */
404
404
  toString() {
405
405
  return `Rectangle(${this.x.toFixed(2)}, ${this.y.toFixed(2)}, ${this.width.toFixed(2)}, ${this.height.toFixed(2)})`;
406
406
  }
407
407
  /**
408
- * 转换为数组
409
- * @returns [x, y, width, height] 数组
410
- */
408
+ * 转换为数组
409
+ * @returns [x, y, width, height] 数组
410
+ */
411
411
  toArray() {
412
412
  return [this.x, this.y, this.width, this.height];
413
413
  }
414
414
  /**
415
- * 转换为普通对象
416
- * @returns {x, y, width, height} 对象
417
- */
415
+ * 转换为普通对象
416
+ * @returns {x, y, width, height} 对象
417
+ */
418
418
  toObject() {
419
419
  return { x: this.x, y: this.y, width: this.width, height: this.height };
420
420
  }
421
421
  /**
422
- * 获取四个顶点
423
- * @returns 顶点数组 [topLeft, topRight, bottomRight, bottomLeft]
424
- */
422
+ * 获取四个顶点
423
+ * @returns 顶点数组 [topLeft, topRight, bottomRight, bottomLeft]
424
+ */
425
425
  getVertices() {
426
426
  return [
427
427
  this.topLeft,
@@ -1 +1 @@
1
- {"version":3,"file":"Rectangle.js","sourceRoot":"","sources":["../src/Rectangle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Rectangle.js","sourceRoot":"","sources":["../src/Rectangle.ts"],"names":[],"mappings":"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"}