@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
package/bin/Matrix3.js DELETED
@@ -1,542 +0,0 @@
1
- import { Vector2 } from './Vector2';
2
- /**
3
- * 3x3变换矩阵类
4
- * 3x3 Transform Matrix Class
5
- *
6
- * 用于2D变换(平移、旋转、缩放)的3x3矩阵
7
- * 使用左手坐标系(顺时针正旋转)
8
- *
9
- * 矩阵布局(顺时针旋转):
10
- * [m00, m01, m02] [scaleX * cos, scaleY * sin, translateX]
11
- * [m10, m11, m12] = [-scaleX * sin, scaleY * cos, translateY]
12
- * [m20, m21, m22] [0, 0, 1]
13
- */
14
- export class Matrix3 {
15
- /**
16
- * 创建3x3矩阵
17
- * @param elements 矩阵元素数组(可选),默认为单位矩阵
18
- */
19
- constructor(elements) {
20
- this.elements = new Float32Array(9);
21
- if (elements) {
22
- this.elements.set(elements);
23
- }
24
- else {
25
- this.identity();
26
- }
27
- }
28
- // 元素访问器
29
- /** 获取矩阵元素 */
30
- get(row, col) {
31
- return this.elements[row * 3 + col];
32
- }
33
- /** 设置矩阵元素 */
34
- set(row, col, value) {
35
- this.elements[row * 3 + col] = value;
36
- return this;
37
- }
38
- // 快速访问器
39
- get m00() { return this.elements[0]; }
40
- set m00(value) { this.elements[0] = value; }
41
- get m01() { return this.elements[1]; }
42
- set m01(value) { this.elements[1] = value; }
43
- get m02() { return this.elements[2]; }
44
- set m02(value) { this.elements[2] = value; }
45
- get m10() { return this.elements[3]; }
46
- set m10(value) { this.elements[3] = value; }
47
- get m11() { return this.elements[4]; }
48
- set m11(value) { this.elements[4] = value; }
49
- get m12() { return this.elements[5]; }
50
- set m12(value) { this.elements[5] = value; }
51
- get m20() { return this.elements[6]; }
52
- set m20(value) { this.elements[6] = value; }
53
- get m21() { return this.elements[7]; }
54
- set m21(value) { this.elements[7] = value; }
55
- get m22() { return this.elements[8]; }
56
- set m22(value) { this.elements[8] = value; }
57
- // 基础操作
58
- /**
59
- * 设置矩阵为单位矩阵
60
- * @returns 当前矩阵实例(链式调用)
61
- */
62
- identity() {
63
- this.elements.set([
64
- 1, 0, 0,
65
- 0, 1, 0,
66
- 0, 0, 1
67
- ]);
68
- return this;
69
- }
70
- /**
71
- * 设置矩阵为零矩阵
72
- * @returns 当前矩阵实例(链式调用)
73
- */
74
- zero() {
75
- this.elements.fill(0);
76
- return this;
77
- }
78
- /**
79
- * 复制另一个矩阵的值
80
- * @param other 源矩阵
81
- * @returns 当前矩阵实例(链式调用)
82
- */
83
- copy(other) {
84
- this.elements.set(other.elements);
85
- return this;
86
- }
87
- /**
88
- * 克隆当前矩阵
89
- * @returns 新的矩阵实例
90
- */
91
- clone() {
92
- return new Matrix3(this.elements);
93
- }
94
- /**
95
- * 从数组设置矩阵元素
96
- * @param elements 矩阵元素数组
97
- * @returns 当前矩阵实例(链式调用)
98
- */
99
- fromArray(elements) {
100
- this.elements.set(elements);
101
- return this;
102
- }
103
- // 矩阵运算
104
- /**
105
- * 矩阵加法
106
- * @param other 另一个矩阵
107
- * @returns 当前矩阵实例(链式调用)
108
- */
109
- add(other) {
110
- for (let i = 0; i < 9; i++) {
111
- this.elements[i] += other.elements[i];
112
- }
113
- return this;
114
- }
115
- /**
116
- * 矩阵减法
117
- * @param other 另一个矩阵
118
- * @returns 当前矩阵实例(链式调用)
119
- */
120
- subtract(other) {
121
- for (let i = 0; i < 9; i++) {
122
- this.elements[i] -= other.elements[i];
123
- }
124
- return this;
125
- }
126
- /**
127
- * 矩阵标量乘法
128
- * @param scalar 标量
129
- * @returns 当前矩阵实例(链式调用)
130
- */
131
- multiplyScalar(scalar) {
132
- for (let i = 0; i < 9; i++) {
133
- this.elements[i] *= scalar;
134
- }
135
- return this;
136
- }
137
- /**
138
- * 矩阵乘法
139
- * @param other 另一个矩阵
140
- * @returns 当前矩阵实例(链式调用)
141
- */
142
- multiply(other) {
143
- const a = this.elements;
144
- const b = other.elements;
145
- const result = new Float32Array(9);
146
- result[0] = a[0] * b[0] + a[1] * b[3] + a[2] * b[6];
147
- result[1] = a[0] * b[1] + a[1] * b[4] + a[2] * b[7];
148
- result[2] = a[0] * b[2] + a[1] * b[5] + a[2] * b[8];
149
- result[3] = a[3] * b[0] + a[4] * b[3] + a[5] * b[6];
150
- result[4] = a[3] * b[1] + a[4] * b[4] + a[5] * b[7];
151
- result[5] = a[3] * b[2] + a[4] * b[5] + a[5] * b[8];
152
- result[6] = a[6] * b[0] + a[7] * b[3] + a[8] * b[6];
153
- result[7] = a[6] * b[1] + a[7] * b[4] + a[8] * b[7];
154
- result[8] = a[6] * b[2] + a[7] * b[5] + a[8] * b[8];
155
- this.elements.set(result);
156
- return this;
157
- }
158
- /**
159
- * 左乘另一个矩阵(other * this)
160
- * @param other 左乘矩阵
161
- * @returns 当前矩阵实例(链式调用)
162
- */
163
- premultiply(other) {
164
- const a = other.elements;
165
- const b = this.elements;
166
- const result = new Float32Array(9);
167
- result[0] = a[0] * b[0] + a[1] * b[3] + a[2] * b[6];
168
- result[1] = a[0] * b[1] + a[1] * b[4] + a[2] * b[7];
169
- result[2] = a[0] * b[2] + a[1] * b[5] + a[2] * b[8];
170
- result[3] = a[3] * b[0] + a[4] * b[3] + a[5] * b[6];
171
- result[4] = a[3] * b[1] + a[4] * b[4] + a[5] * b[7];
172
- result[5] = a[3] * b[2] + a[4] * b[5] + a[5] * b[8];
173
- result[6] = a[6] * b[0] + a[7] * b[3] + a[8] * b[6];
174
- result[7] = a[6] * b[1] + a[7] * b[4] + a[8] * b[7];
175
- result[8] = a[6] * b[2] + a[7] * b[5] + a[8] * b[8];
176
- this.elements.set(result);
177
- return this;
178
- }
179
- // 变换操作
180
- /**
181
- * 设置为平移矩阵
182
- * @param x X方向平移
183
- * @param y Y方向平移
184
- * @returns 当前矩阵实例(链式调用)
185
- */
186
- makeTranslation(x, y) {
187
- this.elements.set([
188
- 1, 0, x,
189
- 0, 1, y,
190
- 0, 0, 1
191
- ]);
192
- return this;
193
- }
194
- /**
195
- * 设置为旋转矩阵(顺时针为正)
196
- * Set as rotation matrix (clockwise positive)
197
- *
198
- * 使用左手坐标系约定:正角度 = 顺时针旋转
199
- * Uses left-hand coordinate system: positive angle = clockwise
200
- *
201
- * @param angle 旋转角度(弧度)
202
- * @returns 当前矩阵实例(链式调用)
203
- */
204
- makeRotation(angle) {
205
- const cos = Math.cos(angle);
206
- const sin = Math.sin(angle);
207
- // Clockwise rotation matrix
208
- // 顺时针旋转矩阵
209
- this.elements.set([
210
- cos, sin, 0,
211
- -sin, cos, 0,
212
- 0, 0, 1
213
- ]);
214
- return this;
215
- }
216
- /**
217
- * 设置为缩放矩阵
218
- * @param scaleX X方向缩放
219
- * @param scaleY Y方向缩放
220
- * @returns 当前矩阵实例(链式调用)
221
- */
222
- makeScale(scaleX, scaleY) {
223
- this.elements.set([
224
- scaleX, 0, 0,
225
- 0, scaleY, 0,
226
- 0, 0, 1
227
- ]);
228
- return this;
229
- }
230
- /**
231
- * 复合平移
232
- * @param x X方向平移
233
- * @param y Y方向平移
234
- * @returns 当前矩阵实例(链式调用)
235
- */
236
- translate(x, y) {
237
- this.m02 += this.m00 * x + this.m01 * y;
238
- this.m12 += this.m10 * x + this.m11 * y;
239
- return this;
240
- }
241
- /**
242
- * 复合旋转(顺时针为正)
243
- * Composite rotation (clockwise positive)
244
- *
245
- * 使用左手坐标系约定:正角度 = 顺时针旋转
246
- * Uses left-hand coordinate system: positive angle = clockwise
247
- *
248
- * @param angle 旋转角度(弧度)
249
- * @returns 当前矩阵实例(链式调用)
250
- */
251
- rotate(angle) {
252
- const cos = Math.cos(angle);
253
- const sin = Math.sin(angle);
254
- // Clockwise rotation: multiply by [cos, sin; -sin, cos]
255
- // 顺时针旋转
256
- const m00 = this.m00 * cos - this.m01 * sin;
257
- const m01 = this.m00 * sin + this.m01 * cos;
258
- const m10 = this.m10 * cos - this.m11 * sin;
259
- const m11 = this.m10 * sin + this.m11 * cos;
260
- this.m00 = m00;
261
- this.m01 = m01;
262
- this.m10 = m10;
263
- this.m11 = m11;
264
- return this;
265
- }
266
- /**
267
- * 复合缩放
268
- * @param scaleX X方向缩放
269
- * @param scaleY Y方向缩放
270
- * @returns 当前矩阵实例(链式调用)
271
- */
272
- scale(scaleX, scaleY) {
273
- this.m00 *= scaleX;
274
- this.m01 *= scaleY;
275
- this.m10 *= scaleX;
276
- this.m11 *= scaleY;
277
- return this;
278
- }
279
- // 矩阵变换
280
- /**
281
- * 矩阵转置
282
- * @returns 当前矩阵实例(链式调用)
283
- */
284
- transpose() {
285
- const elements = this.elements;
286
- let tmp;
287
- tmp = elements[1];
288
- elements[1] = elements[3];
289
- elements[3] = tmp;
290
- tmp = elements[2];
291
- elements[2] = elements[6];
292
- elements[6] = tmp;
293
- tmp = elements[5];
294
- elements[5] = elements[7];
295
- elements[7] = tmp;
296
- return this;
297
- }
298
- /**
299
- * 计算矩阵行列式
300
- * @returns 行列式值
301
- */
302
- determinant() {
303
- const e = this.elements;
304
- return e[0] * (e[4] * e[8] - e[5] * e[7]) -
305
- e[1] * (e[3] * e[8] - e[5] * e[6]) +
306
- e[2] * (e[3] * e[7] - e[4] * e[6]);
307
- }
308
- /**
309
- * 矩阵求逆
310
- * @returns 当前矩阵实例(链式调用),如果矩阵不可逆则保持不变
311
- */
312
- invert() {
313
- const e = this.elements;
314
- const det = this.determinant();
315
- if (Math.abs(det) < Number.EPSILON) {
316
- console.warn('Matrix3: 矩阵不可逆');
317
- return this;
318
- }
319
- const invDet = 1 / det;
320
- const result = new Float32Array(9);
321
- result[0] = (e[4] * e[8] - e[5] * e[7]) * invDet;
322
- result[1] = (e[2] * e[7] - e[1] * e[8]) * invDet;
323
- result[2] = (e[1] * e[5] - e[2] * e[4]) * invDet;
324
- result[3] = (e[5] * e[6] - e[3] * e[8]) * invDet;
325
- result[4] = (e[0] * e[8] - e[2] * e[6]) * invDet;
326
- result[5] = (e[2] * e[3] - e[0] * e[5]) * invDet;
327
- result[6] = (e[3] * e[7] - e[4] * e[6]) * invDet;
328
- result[7] = (e[1] * e[6] - e[0] * e[7]) * invDet;
329
- result[8] = (e[0] * e[4] - e[1] * e[3]) * invDet;
330
- this.elements.set(result);
331
- return this;
332
- }
333
- // 向量变换
334
- /**
335
- * 变换向量(应用完整的3x3变换)
336
- * @param vector 向量
337
- * @returns 新的变换后的向量
338
- */
339
- transformVector(vector) {
340
- const x = vector.x;
341
- const y = vector.y;
342
- const w = this.m20 * x + this.m21 * y + this.m22;
343
- return new Vector2((this.m00 * x + this.m01 * y + this.m02) / w, (this.m10 * x + this.m11 * y + this.m12) / w);
344
- }
345
- /**
346
- * 变换向量(仅应用旋转和缩放,忽略平移)
347
- * @param vector 向量
348
- * @returns 新的变换后的向量
349
- */
350
- transformDirection(vector) {
351
- return new Vector2(this.m00 * vector.x + this.m01 * vector.y, this.m10 * vector.x + this.m11 * vector.y);
352
- }
353
- /**
354
- * 批量变换向量数组
355
- * @param vectors 向量数组
356
- * @returns 变换后的向量数组
357
- */
358
- transformVectors(vectors) {
359
- return vectors.map((v) => this.transformVector(v));
360
- }
361
- // 属性提取
362
- /**
363
- * 获取平移分量
364
- * @returns 平移向量
365
- */
366
- getTranslation() {
367
- return new Vector2(this.m02, this.m12);
368
- }
369
- /**
370
- * 获取旋转角度(顺时针为正)
371
- * Get rotation angle (clockwise positive)
372
- * @returns 旋转角度(弧度)
373
- */
374
- getRotation() {
375
- // For clockwise rotation matrix [cos, sin; -sin, cos]
376
- // m00 = cos, m01 = sin, so atan2(m01, m00) = θ
377
- // 顺时针旋转矩阵:从 m01 和 m00 提取角度
378
- return Math.atan2(this.m01, this.m00);
379
- }
380
- /**
381
- * 获取缩放分量
382
- * @returns 缩放向量
383
- */
384
- getScale() {
385
- const scaleX = Math.sqrt(this.m00 * this.m00 + this.m10 * this.m10);
386
- const scaleY = Math.sqrt(this.m01 * this.m01 + this.m11 * this.m11);
387
- // 检查是否有反转
388
- const det = this.determinant();
389
- if (det < 0) {
390
- return new Vector2(-scaleX, scaleY);
391
- }
392
- return new Vector2(scaleX, scaleY);
393
- }
394
- /**
395
- * 分解变换矩阵为平移、旋转、缩放分量
396
- * @returns {translation, rotation, scale}
397
- */
398
- decompose() {
399
- return {
400
- translation: this.getTranslation(),
401
- rotation: this.getRotation(),
402
- scale: this.getScale()
403
- };
404
- }
405
- // 比较操作
406
- /**
407
- * 检查两个矩阵是否相等
408
- * @param other 另一个矩阵
409
- * @param epsilon 容差,默认为Number.EPSILON
410
- * @returns 是否相等
411
- */
412
- equals(other, epsilon = Number.EPSILON) {
413
- for (let i = 0; i < 9; i++) {
414
- if (Math.abs(this.elements[i] - other.elements[i]) >= epsilon) {
415
- return false;
416
- }
417
- }
418
- return true;
419
- }
420
- /**
421
- * 检查两个矩阵是否完全相等
422
- * @param other 另一个矩阵
423
- * @returns 是否完全相等
424
- */
425
- exactEquals(other) {
426
- for (let i = 0; i < 9; i++) {
427
- if (this.elements[i] !== other.elements[i]) {
428
- return false;
429
- }
430
- }
431
- return true;
432
- }
433
- /**
434
- * 检查是否为单位矩阵
435
- * @param epsilon 容差,默认为Number.EPSILON
436
- * @returns 是否为单位矩阵
437
- */
438
- isIdentity(epsilon = Number.EPSILON) {
439
- return this.equals(Matrix3.IDENTITY, epsilon);
440
- }
441
- // 静态方法
442
- /**
443
- * 矩阵乘法(静态方法)
444
- * @param a 矩阵a
445
- * @param b 矩阵b
446
- * @returns 新的结果矩阵
447
- */
448
- static multiply(a, b) {
449
- return a.clone().multiply(b);
450
- }
451
- /**
452
- * 创建平移矩阵(静态方法)
453
- * @param x X方向平移
454
- * @param y Y方向平移
455
- * @returns 新的平移矩阵
456
- */
457
- static translation(x, y) {
458
- return new Matrix3().makeTranslation(x, y);
459
- }
460
- /**
461
- * 创建旋转矩阵(静态方法)
462
- * @param angle 旋转角度(弧度)
463
- * @returns 新的旋转矩阵
464
- */
465
- static rotation(angle) {
466
- return new Matrix3().makeRotation(angle);
467
- }
468
- /**
469
- * 创建缩放矩阵(静态方法)
470
- * @param scaleX X方向缩放
471
- * @param scaleY Y方向缩放
472
- * @returns 新的缩放矩阵
473
- */
474
- static scale(scaleX, scaleY) {
475
- return new Matrix3().makeScale(scaleX, scaleY);
476
- }
477
- /**
478
- * 创建TRS(平移-旋转-缩放)变换矩阵(顺时针为正)
479
- * Create TRS (Translate-Rotate-Scale) matrix (clockwise positive)
480
- *
481
- * 使用左手坐标系约定:正角度 = 顺时针旋转
482
- * Uses left-hand coordinate system: positive angle = clockwise
483
- *
484
- * @param translation 平移向量
485
- * @param rotation 旋转角度(弧度)
486
- * @param scale 缩放向量
487
- * @returns 新的TRS矩阵
488
- */
489
- static TRS(translation, rotation, scale) {
490
- const cos = Math.cos(rotation);
491
- const sin = Math.sin(rotation);
492
- // Clockwise rotation matrix with scale
493
- // 带缩放的顺时针旋转矩阵
494
- return new Matrix3([
495
- scale.x * cos, scale.y * sin, translation.x,
496
- -scale.x * sin, scale.y * cos, translation.y,
497
- 0, 0, 1
498
- ]);
499
- }
500
- // 字符串转换
501
- /**
502
- * 转换为字符串
503
- * @returns 字符串表示
504
- */
505
- toString() {
506
- const e = this.elements;
507
- return 'Matrix3(\n' +
508
- ` ${e[0].toFixed(3)}, ${e[1].toFixed(3)}, ${e[2].toFixed(3)}\n` +
509
- ` ${e[3].toFixed(3)}, ${e[4].toFixed(3)}, ${e[5].toFixed(3)}\n` +
510
- ` ${e[6].toFixed(3)}, ${e[7].toFixed(3)}, ${e[8].toFixed(3)}\n` +
511
- ')';
512
- }
513
- /**
514
- * 转换为数组
515
- * @returns 矩阵元素数组
516
- */
517
- toArray() {
518
- return Array.from(this.elements);
519
- }
520
- /**
521
- * 转换为CSS transform字符串
522
- * @returns CSS transform字符串
523
- */
524
- toCSSTransform() {
525
- const e = this.elements;
526
- return `matrix(${e[0]}, ${e[3]}, ${e[1]}, ${e[4]}, ${e[2]}, ${e[5]})`;
527
- }
528
- }
529
- // 静态常量
530
- /** 单位矩阵 */
531
- Matrix3.IDENTITY = new Matrix3([
532
- 1, 0, 0,
533
- 0, 1, 0,
534
- 0, 0, 1
535
- ]);
536
- /** 零矩阵 */
537
- Matrix3.ZERO = new Matrix3([
538
- 0, 0, 0,
539
- 0, 0, 0,
540
- 0, 0, 0
541
- ]);
542
- //# sourceMappingURL=Matrix3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Matrix3.js","sourceRoot":"","sources":["../src/Matrix3.ts"],"names":[],"mappings":"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C,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,G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"}