@ntf/math 1.2.0 → 1.3.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.
Files changed (125) hide show
  1. package/dist/index.d.mts +754 -0
  2. package/dist/index.d.ts +754 -0
  3. package/dist/index.js +2892 -0
  4. package/dist/index.mjs +2869 -0
  5. package/package.json +23 -13
  6. package/dist/cjs/algebra/function.js +0 -7
  7. package/dist/cjs/algebra/function.js.map +0 -1
  8. package/dist/cjs/algebra/linear.js +0 -49
  9. package/dist/cjs/algebra/linear.js.map +0 -1
  10. package/dist/cjs/algebra/quad.js +0 -62
  11. package/dist/cjs/algebra/quad.js.map +0 -1
  12. package/dist/cjs/color.js +0 -243
  13. package/dist/cjs/color.js.map +0 -1
  14. package/dist/cjs/common/error.js +0 -14
  15. package/dist/cjs/common/error.js.map +0 -1
  16. package/dist/cjs/common/sign.js +0 -14
  17. package/dist/cjs/common/sign.js.map +0 -1
  18. package/dist/cjs/common/types.js +0 -77
  19. package/dist/cjs/common/types.js.map +0 -1
  20. package/dist/cjs/geometry/angle.js +0 -11
  21. package/dist/cjs/geometry/angle.js.map +0 -1
  22. package/dist/cjs/geometry/bbox.js +0 -102
  23. package/dist/cjs/geometry/bbox.js.map +0 -1
  24. package/dist/cjs/geometry/circle.js +0 -87
  25. package/dist/cjs/geometry/circle.js.map +0 -1
  26. package/dist/cjs/geometry/object.js +0 -3
  27. package/dist/cjs/geometry/object.js.map +0 -1
  28. package/dist/cjs/geometry/rectangle.js +0 -98
  29. package/dist/cjs/geometry/rectangle.js.map +0 -1
  30. package/dist/cjs/geometry/square.js +0 -70
  31. package/dist/cjs/geometry/square.js.map +0 -1
  32. package/dist/cjs/geometry/triangle.js +0 -65
  33. package/dist/cjs/geometry/triangle.js.map +0 -1
  34. package/dist/cjs/index.js +0 -59
  35. package/dist/cjs/index.js.map +0 -1
  36. package/dist/cjs/matrices/mat3.js +0 -202
  37. package/dist/cjs/matrices/mat3.js.map +0 -1
  38. package/dist/cjs/matrices/mat4.js +0 -292
  39. package/dist/cjs/matrices/mat4.js.map +0 -1
  40. package/dist/cjs/quaternion.js +0 -204
  41. package/dist/cjs/quaternion.js.map +0 -1
  42. package/dist/cjs/vectors/vec2.js +0 -168
  43. package/dist/cjs/vectors/vec2.js.map +0 -1
  44. package/dist/cjs/vectors/vec3.js +0 -177
  45. package/dist/cjs/vectors/vec3.js.map +0 -1
  46. package/dist/esm/algebra/function.js +0 -3
  47. package/dist/esm/algebra/function.js.map +0 -1
  48. package/dist/esm/algebra/linear.js +0 -45
  49. package/dist/esm/algebra/linear.js.map +0 -1
  50. package/dist/esm/algebra/quad.js +0 -58
  51. package/dist/esm/algebra/quad.js.map +0 -1
  52. package/dist/esm/color.js +0 -236
  53. package/dist/esm/color.js.map +0 -1
  54. package/dist/esm/common/error.js +0 -10
  55. package/dist/esm/common/error.js.map +0 -1
  56. package/dist/esm/common/sign.js +0 -10
  57. package/dist/esm/common/sign.js.map +0 -1
  58. package/dist/esm/common/types.js +0 -65
  59. package/dist/esm/common/types.js.map +0 -1
  60. package/dist/esm/geometry/angle.js +0 -5
  61. package/dist/esm/geometry/angle.js.map +0 -1
  62. package/dist/esm/geometry/bbox.js +0 -98
  63. package/dist/esm/geometry/bbox.js.map +0 -1
  64. package/dist/esm/geometry/circle.js +0 -83
  65. package/dist/esm/geometry/circle.js.map +0 -1
  66. package/dist/esm/geometry/object.js +0 -2
  67. package/dist/esm/geometry/object.js.map +0 -1
  68. package/dist/esm/geometry/rectangle.js +0 -94
  69. package/dist/esm/geometry/rectangle.js.map +0 -1
  70. package/dist/esm/geometry/square.js +0 -66
  71. package/dist/esm/geometry/square.js.map +0 -1
  72. package/dist/esm/geometry/triangle.js +0 -59
  73. package/dist/esm/geometry/triangle.js.map +0 -1
  74. package/dist/esm/index.js +0 -40
  75. package/dist/esm/index.js.map +0 -1
  76. package/dist/esm/matrices/mat3.js +0 -198
  77. package/dist/esm/matrices/mat3.js.map +0 -1
  78. package/dist/esm/matrices/mat4.js +0 -288
  79. package/dist/esm/matrices/mat4.js.map +0 -1
  80. package/dist/esm/quaternion.js +0 -200
  81. package/dist/esm/quaternion.js.map +0 -1
  82. package/dist/esm/vectors/vec2.js +0 -164
  83. package/dist/esm/vectors/vec2.js.map +0 -1
  84. package/dist/esm/vectors/vec3.js +0 -173
  85. package/dist/esm/vectors/vec3.js.map +0 -1
  86. package/dist/types/algebra/function.d.ts +0 -6
  87. package/dist/types/algebra/function.d.ts.map +0 -1
  88. package/dist/types/algebra/linear.d.ts +0 -14
  89. package/dist/types/algebra/linear.d.ts.map +0 -1
  90. package/dist/types/algebra/quad.d.ts +0 -18
  91. package/dist/types/algebra/quad.d.ts.map +0 -1
  92. package/dist/types/color.d.ts +0 -90
  93. package/dist/types/color.d.ts.map +0 -1
  94. package/dist/types/common/error.d.ts +0 -6
  95. package/dist/types/common/error.d.ts.map +0 -1
  96. package/dist/types/common/sign.d.ts +0 -2
  97. package/dist/types/common/sign.d.ts.map +0 -1
  98. package/dist/types/common/types.d.ts +0 -26
  99. package/dist/types/common/types.d.ts.map +0 -1
  100. package/dist/types/geometry/angle.d.ts +0 -5
  101. package/dist/types/geometry/angle.d.ts.map +0 -1
  102. package/dist/types/geometry/bbox.d.ts +0 -38
  103. package/dist/types/geometry/bbox.d.ts.map +0 -1
  104. package/dist/types/geometry/circle.d.ts +0 -32
  105. package/dist/types/geometry/circle.d.ts.map +0 -1
  106. package/dist/types/geometry/object.d.ts +0 -5
  107. package/dist/types/geometry/object.d.ts.map +0 -1
  108. package/dist/types/geometry/rectangle.d.ts +0 -34
  109. package/dist/types/geometry/rectangle.d.ts.map +0 -1
  110. package/dist/types/geometry/square.d.ts +0 -28
  111. package/dist/types/geometry/square.d.ts.map +0 -1
  112. package/dist/types/geometry/triangle.d.ts +0 -42
  113. package/dist/types/geometry/triangle.d.ts.map +0 -1
  114. package/dist/types/index.d.ts +0 -23
  115. package/dist/types/index.d.ts.map +0 -1
  116. package/dist/types/matrices/mat3.d.ts +0 -62
  117. package/dist/types/matrices/mat3.d.ts.map +0 -1
  118. package/dist/types/matrices/mat4.d.ts +0 -89
  119. package/dist/types/matrices/mat4.d.ts.map +0 -1
  120. package/dist/types/quaternion.d.ts +0 -50
  121. package/dist/types/quaternion.d.ts.map +0 -1
  122. package/dist/types/vectors/vec2.d.ts +0 -60
  123. package/dist/types/vectors/vec2.d.ts.map +0 -1
  124. package/dist/types/vectors/vec3.d.ts +0 -58
  125. package/dist/types/vectors/vec3.d.ts.map +0 -1
@@ -1,288 +0,0 @@
1
- import { ResolveError } from "../common/error.js";
2
- import { Vec3 } from "../vectors/vec3.js";
3
- import { check_number_array, check_number, check_string, check_string_array, has_property, check_array } from "../common/types.js";
4
- import { Mat3 } from "./mat3.js";
5
- export class Mat4 {
6
- _raw;
7
- get m00() { return this._raw[0]; }
8
- set m00(val) { this._raw[0] = val; }
9
- get m01() { return this._raw[1]; }
10
- set m01(val) { this._raw[1] = val; }
11
- get m02() { return this._raw[2]; }
12
- set m02(val) { this._raw[2] = val; }
13
- get m03() { return this._raw[3]; }
14
- set m03(val) { this._raw[3] = val; }
15
- get m10() { return this._raw[4]; }
16
- set m10(val) { this._raw[4] = val; }
17
- get m11() { return this._raw[5]; }
18
- set m11(val) { this._raw[5] = val; }
19
- get m12() { return this._raw[6]; }
20
- set m12(val) { this._raw[6] = val; }
21
- get m13() { return this._raw[7]; }
22
- set m13(val) { this._raw[7] = val; }
23
- get m20() { return this._raw[8]; }
24
- set m20(val) { this._raw[8] = val; }
25
- get m21() { return this._raw[9]; }
26
- set m21(val) { this._raw[9] = val; }
27
- get m22() { return this._raw[10]; }
28
- set m22(val) { this._raw[10] = val; }
29
- get m23() { return this._raw[11]; }
30
- set m23(val) { this._raw[11] = val; }
31
- get m30() { return this._raw[12]; }
32
- set m30(val) { this._raw[12] = val; }
33
- get m31() { return this._raw[13]; }
34
- set m31(val) { this._raw[13] = val; }
35
- get m32() { return this._raw[14]; }
36
- set m32(val) { this._raw[14] = val; }
37
- get m33() { return this._raw[15]; }
38
- set m33(val) { this._raw[15] = val; }
39
- static resolve(a) {
40
- const value = this.cast(a);
41
- if (typeof value != "undefined")
42
- return value;
43
- throw new ResolveError("Mat4", a);
44
- }
45
- static cast(a) {
46
- if (a == null || typeof a == "undefined")
47
- return undefined;
48
- if (check_number_array(a, 16)) {
49
- return new this(a);
50
- }
51
- if (check_array(a, undefined, 4)) {
52
- const row0 = a[0], row1 = a[1], row2 = a[2], row3 = a[3];
53
- if (check_number_array(row0, 4) && check_number_array(row1, 4) && check_number_array(row2, 4) && check_number_array(row3, 4))
54
- return new this([
55
- row0[0], row0[1], row0[2], row0[3],
56
- row1[0], row1[1], row1[2], row1[3],
57
- row2[0], row2[1], row2[2], row2[3],
58
- row3[0], row3[1], row3[2], row3[3]
59
- ]);
60
- }
61
- if (check_string(a)) {
62
- const parts = a.split(",");
63
- if (check_string_array(parts, 16))
64
- return this.cast(parts.map((i) => parseFloat(i)));
65
- }
66
- if (has_property(a, "m00", "number") && has_property(a, "m01", "number") && has_property(a, "m02", "number") && has_property(a, "m03", "number") &&
67
- has_property(a, "m10", "number") && has_property(a, "m11", "number") && has_property(a, "m12", "number") && has_property(a, "m13", "number") &&
68
- has_property(a, "m20", "number") && has_property(a, "m21", "number") && has_property(a, "m22", "number") && has_property(a, "m23", "number") &&
69
- has_property(a, "m30", "number") && has_property(a, "m31", "number") && has_property(a, "m32", "number") && has_property(a, "m33", "number"))
70
- return new this([
71
- a.m00, a.m01, a.m02, a.m03,
72
- a.m10, a.m11, a.m12, a.m13,
73
- a.m20, a.m21, a.m22, a.m23,
74
- a.m30, a.m31, a.m32, a.m33
75
- ]);
76
- if (check_number(a)) {
77
- return new this([a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a]);
78
- }
79
- return undefined;
80
- }
81
- static is(a) {
82
- return typeof this.cast(a) != "undefined";
83
- }
84
- static orthographic(left, right, bottom, top, near, far) {
85
- return new this([
86
- 2 / (right - left), 0, 0, 0,
87
- 0, 2 / (top - bottom), 0, 0,
88
- 0, 0, 2 / (near - far), 0,
89
- (left + right) / (left - right),
90
- (bottom + top) / (bottom - top),
91
- (near + far) / (near - far), 1
92
- ]);
93
- }
94
- static perspective(fov, aspect, near, far) {
95
- const f = Math.tan(Math.PI * 0.5 - 0.5 * fov);
96
- const rangeInv = 1.0 / (near - far);
97
- return new this([
98
- f / aspect, 0, 0, 0,
99
- 0, f, 0, 0,
100
- 0, 0, (near + far) * rangeInv, -1,
101
- 0, 0, near * far * rangeInv * 2, 0
102
- ]);
103
- }
104
- static pointAt(position, target, up) {
105
- const newForward = Vec3.resolve(target).subtract(position).normalize();
106
- const a = newForward.multiply(Vec3.resolve(up).dot(newForward));
107
- const newUp = Vec3.resolve(up).subtract(a).normalize();
108
- const newRight = newUp.cross(newForward);
109
- const pos = Vec3.resolve(position);
110
- return new this([
111
- newRight.x, newRight.y, newRight.z, 0,
112
- newUp.x, newUp.y, newUp.z, 0,
113
- newForward.x, newForward.y, newForward.z, 0,
114
- pos.x, pos.y, pos.z, 1
115
- ]);
116
- }
117
- constructor(init = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]) {
118
- if (!check_number_array(init, 16))
119
- throw new TypeError("expected a number array with 16 elements");
120
- this._raw = init;
121
- }
122
- toArray() {
123
- return [
124
- this.m00, this.m01, this.m02, this.m03,
125
- this.m10, this.m11, this.m12, this.m13,
126
- this.m20, this.m21, this.m22, this.m23,
127
- this.m30, this.m31, this.m32, this.m33
128
- ];
129
- }
130
- toNestetArray() {
131
- return [
132
- [this.m00, this.m01, this.m02, this.m03],
133
- [this.m10, this.m11, this.m12, this.m13],
134
- [this.m20, this.m21, this.m22, this.m23],
135
- [this.m30, this.m31, this.m32, this.m33]
136
- ];
137
- }
138
- toJSON() {
139
- return {
140
- m00: this.m00, m01: this.m01, m02: this.m02, m03: this.m03,
141
- m10: this.m10, m11: this.m11, m12: this.m12, m13: this.m13,
142
- m20: this.m20, m21: this.m21, m22: this.m22, m23: this.m23,
143
- m30: this.m20, m31: this.m21, m32: this.m22, m33: this.m23
144
- };
145
- }
146
- toString() {
147
- return `${this.m00},${this.m01},${this.m02},${this.m03},${this.m10},${this.m11},${this.m12},${this.m13},${this.m20},${this.m21},${this.m22},${this.m23},${this.m30},${this.m31},${this.m32},${this.m33}`;
148
- }
149
- clone() {
150
- return new Mat4([
151
- this.m00, this.m01, this.m02, this.m03,
152
- this.m10, this.m11, this.m12, this.m13,
153
- this.m20, this.m21, this.m22, this.m23,
154
- this.m30, this.m31, this.m32, this.m33
155
- ]);
156
- }
157
- equals(mat) {
158
- const m = Mat4.resolve(mat);
159
- for (let index = 0; index < this._raw.length; index++)
160
- if (this._raw[index] != m._raw[index])
161
- return false;
162
- return true;
163
- }
164
- add(mat) {
165
- const b = Mat4.resolve(mat);
166
- const m = new Mat4;
167
- for (let index = 0; index < this._raw.length; index++)
168
- m._raw[index] = this._raw[index] + b._raw[index];
169
- return m;
170
- }
171
- subtract(mat) {
172
- const b = Mat4.resolve(mat);
173
- const m = new Mat4;
174
- for (let index = 0; index < this._raw.length; index++)
175
- m._raw[index] = this._raw[index] - b._raw[index];
176
- return m;
177
- }
178
- multiply(a) {
179
- if (check_number(a)) {
180
- return new Mat4([
181
- this.m00 * a, this.m01 * a, this.m02 * a, this.m03 * a,
182
- this.m10 * a, this.m11 * a, this.m12 * a, this.m13 * a,
183
- this.m20 * a, this.m21 * a, this.m22 * a, this.m23 * a,
184
- this.m30 * a, this.m31 * a, this.m32 * a, this.m33 * a
185
- ]);
186
- }
187
- if (Mat4.is(a)) {
188
- const b = Mat4.resolve(a);
189
- return new Mat4([
190
- b.m00 * this.m00 + b.m01 * this.m10 + b.m02 * this.m20 + b.m03 * this.m30,
191
- b.m00 * this.m01 + b.m01 * this.m11 + b.m02 * this.m21 + b.m03 * this.m31,
192
- b.m00 * this.m02 + b.m01 * this.m12 + b.m02 * this.m22 + b.m03 * this.m32,
193
- b.m00 * this.m03 + b.m01 * this.m13 + b.m02 * this.m23 + b.m03 * this.m33,
194
- b.m10 * this.m00 + b.m11 * this.m10 + b.m12 * this.m20 + b.m13 * this.m30,
195
- b.m10 * this.m01 + b.m11 * this.m11 + b.m12 * this.m21 + b.m13 * this.m31,
196
- b.m10 * this.m02 + b.m11 * this.m12 + b.m12 * this.m22 + b.m13 * this.m32,
197
- b.m10 * this.m03 + b.m11 * this.m13 + b.m12 * this.m23 + b.m13 * this.m33,
198
- b.m20 * this.m00 + b.m21 * this.m10 + b.m22 * this.m20 + b.m23 * this.m30,
199
- b.m20 * this.m01 + b.m21 * this.m11 + b.m22 * this.m21 + b.m23 * this.m31,
200
- b.m20 * this.m02 + b.m21 * this.m12 + b.m22 * this.m22 + b.m23 * this.m32,
201
- b.m20 * this.m03 + b.m21 * this.m13 + b.m22 * this.m23 + b.m23 * this.m33,
202
- b.m30 * this.m00 + b.m31 * this.m10 + b.m32 * this.m20 + b.m33 * this.m30,
203
- b.m30 * this.m01 + b.m31 * this.m11 + b.m32 * this.m21 + b.m33 * this.m31,
204
- b.m30 * this.m02 + b.m31 * this.m12 + b.m32 * this.m22 + b.m33 * this.m32,
205
- b.m30 * this.m03 + b.m31 * this.m13 + b.m32 * this.m23 + b.m33 * this.m33,
206
- ]);
207
- }
208
- if (Vec3.is(a)) {
209
- const b = Vec3.resolve(a);
210
- const vec = new Vec3(b.x * this.m00 + b.y * this.m10 + b.z * this.m20 + this.m30, b.x * this.m01 + b.y * this.m11 + b.z * this.m21 + this.m31, b.x * this.m02 + b.y * this.m12 + b.z * this.m22 + this.m32, b.x * this.m03 + b.y * this.m13 + b.z * this.m23 + this.m33);
211
- if (vec.w != 0)
212
- return vec.divide(vec.w);
213
- return vec;
214
- }
215
- throw new ResolveError("Mat4 or Vec3 or number", a);
216
- }
217
- translate(...args) {
218
- const vec = Vec3.resolveArgs(args);
219
- return this.multiply([
220
- 1, 0, 0, 0,
221
- 0, 1, 0, 0,
222
- 0, 0, 1, 0,
223
- vec.x, vec.y, vec.z, 1
224
- ]);
225
- }
226
- rotateX(angle) {
227
- const c = Math.cos(angle);
228
- const s = Math.sin(angle);
229
- return this.multiply([
230
- 1, 0, 0, 0,
231
- 0, c, s, 0,
232
- 0, -s, c, 0,
233
- 0, 0, 0, 1
234
- ]);
235
- }
236
- rotateY(angle) {
237
- const c = Math.cos(angle);
238
- const s = Math.sin(angle);
239
- return this.multiply([
240
- c, 0, -s, 0,
241
- 0, 1, 0, 0,
242
- s, 0, c, 0,
243
- 0, 0, 0, 1
244
- ]);
245
- }
246
- rotateZ(angle) {
247
- const c = Math.cos(angle);
248
- const s = Math.sin(angle);
249
- return this.multiply([
250
- c, s, 0, 0,
251
- -s, c, 0, 0,
252
- 0, 0, 1, 0,
253
- 0, 0, 0, 1
254
- ]);
255
- }
256
- rotate(...args) {
257
- const vec = Vec3.resolveArgs(args);
258
- return this.rotateX(vec.x).rotateY(vec.y).rotateZ(vec.z);
259
- }
260
- scale(...args) {
261
- const vec = Vec3.resolveArgs(args);
262
- return this.multiply([
263
- vec.x, 0, 0, 0,
264
- 0, vec.y, 0, 0,
265
- 0, 0, vec.z, 0,
266
- 0, 0, 0, 1
267
- ]);
268
- }
269
- inverse() {
270
- return new Mat4([
271
- this.m00, this.m10, this.m20, 0,
272
- this.m01, this.m11, this.m21, 0,
273
- this.m02, this.m12, this.m22, 0,
274
- -(this.m30 * this.m00 + this.m31 * this.m10 + this.m32 * this.m20),
275
- -(this.m30 * this.m01 + this.m31 * this.m11 + this.m32 * this.m21),
276
- -(this.m30 * this.m02 + this.m31 * this.m12 + this.m32 * this.m22),
277
- 1
278
- ]);
279
- }
280
- toMat3() {
281
- return new Mat3([
282
- this.m00, this.m01, this.m03,
283
- this.m10, this.m11, this.m13,
284
- this.m30, this.m31, this.m33
285
- ]);
286
- }
287
- }
288
- //# sourceMappingURL=mat4.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mat4.js","sourceRoot":"","sources":["../../../source/matrices/mat4.ts"],"names":[],"mappings":"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G,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;gBACzE,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;gBAEzE,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;gBACzE,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;gBACzE,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;gBACzE,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;gBAEzE,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;gBACzE,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC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"}
@@ -1,200 +0,0 @@
1
- import { ResolveError } from "./common/error.js";
2
- import { check_number, check_number_array, check_string, check_string_array, has_property } from "./common/types.js";
3
- import { EPSILON, Mat3, Mat4, log_hypot } from "./index.js";
4
- import { Vec3 } from "./vectors/vec3.js";
5
- export class Quaternion {
6
- w;
7
- x;
8
- y;
9
- z;
10
- static is(a) {
11
- return typeof this.cast(a) != "undefined";
12
- }
13
- static resolve(a) {
14
- const value = this.cast(a);
15
- if (typeof value != "undefined")
16
- return value;
17
- throw new ResolveError("Quaternion", a);
18
- }
19
- static cast(a) {
20
- if (a == null || typeof a == "undefined")
21
- return undefined;
22
- if (check_number_array(a, 4))
23
- return new this(a[0], a[1], a[2], a[3]);
24
- if (has_property(a, "w", "number") && has_property(a, "x", "number") && has_property(a, "y", "number") && has_property(a, "z", "number"))
25
- return new this(a.w, a.x, a.y, a.z);
26
- if (check_string(a)) {
27
- const parts = a.replaceAll(" ", "").split("+");
28
- if (check_string_array(parts, 4)) {
29
- const [sw, sxi, syj, szk] = parts;
30
- if (sxi.endsWith("i") && syj.endsWith("j") && szk.endsWith("k"))
31
- return this.cast([
32
- parseFloat(sw),
33
- parseFloat(sxi.substring(0, sxi.length - 1)),
34
- parseFloat(syj.substring(0, syj.length - 1)),
35
- parseFloat(szk.substring(0, szk.length - 1))
36
- ]);
37
- }
38
- }
39
- return undefined;
40
- }
41
- static fromAxisAngle(axis, angle) {
42
- const vec = Vec3.resolve(axis);
43
- const hangle = angle * 0.5;
44
- const sin2 = Math.sin(hangle);
45
- const cos2 = Math.cos(hangle);
46
- const length = sin2 / Math.sqrt(vec.x * vec.x + vec.y * vec.y + vec.z * vec.z);
47
- return new this(cos2, vec.x * length, vec.y * length, vec.z * length);
48
- }
49
- static fromEuler(...args) {
50
- const vec = Vec3.resolveArgs(args);
51
- const x2 = vec.x * 0.5, y2 = vec.y * 0.5, z2 = vec.z * 0.5;
52
- const cx = Math.cos(x2), cy = Math.cos(y2), cz = Math.cos(z2);
53
- const sx = Math.sin(x2), sy = Math.sin(y2), sz = Math.sin(z2);
54
- return new Quaternion(cx * cy * cz - sx * sy * sz, sx * cy * cz - sy * sz * cx, sy * cx * cz - sx * sz * cy, sx * sy * cz + sz * cx * cy);
55
- }
56
- constructor(w = 0, x = 0, y = 0, z = 0) {
57
- if (!check_number(w))
58
- throw new TypeError("expected number for w");
59
- if (!check_number(x))
60
- throw new TypeError("expected number for x");
61
- if (!check_number(y))
62
- throw new TypeError("expected number for x");
63
- if (!check_number(z))
64
- throw new TypeError("expected number for w");
65
- this.w = w;
66
- this.x = x;
67
- this.y = y;
68
- this.z = z;
69
- }
70
- toArray() {
71
- return [this.w, this.x, this.y, this.z];
72
- }
73
- toString() {
74
- return `${this.w} + ${this.x}i + ${this.y}j + ${this.z}k`;
75
- }
76
- toJSON() {
77
- return {
78
- w: this.w, x: this.x, y: this.y, z: this.z
79
- };
80
- }
81
- clone() {
82
- return new Quaternion(this.w, this.x, this.y, this.z);
83
- }
84
- add(a) {
85
- const quat = Quaternion.resolve(a);
86
- return new Quaternion(this.w + quat.w, this.x + quat.x, this.y + quat.y, this.z + quat.z);
87
- }
88
- offset(a) {
89
- const quat = Quaternion.resolve(a);
90
- this.w += quat.w;
91
- this.x += quat.x;
92
- this.y += quat.y;
93
- this.z += quat.z;
94
- return this;
95
- }
96
- subtract(a) {
97
- const quat = Quaternion.resolve(a);
98
- return new Quaternion(this.w - quat.w, this.x - quat.x, this.y - quat.y, this.z - quat.z);
99
- }
100
- negative() {
101
- return new Quaternion(-this.w, -this.x, -this.y, -this.z);
102
- }
103
- length(sqrt = true) {
104
- const value = this.w * this.w + this.x * this.x + this.y * this.y + this.z * this.z;
105
- return sqrt ? Math.sqrt(value) : value;
106
- }
107
- normalize() {
108
- let length = this.length();
109
- if (length < EPSILON)
110
- return new Quaternion();
111
- length = 1 / length;
112
- return new Quaternion(this.w * length, this.x * length, this.y * length, this.z * length);
113
- }
114
- multiply(a) {
115
- const quat = Quaternion.resolve(a);
116
- return new Quaternion(this.w * quat.w - this.x * quat.x - this.y * quat.y - this.z * quat.z, this.w * quat.x + this.x * quat.w + this.y * quat.z - this.z * quat.y, this.w * quat.y + this.y * quat.w + this.z * quat.x - this.x * quat.z, this.w * quat.z + this.z * quat.w + this.x * quat.y - this.y * quat.x);
117
- }
118
- multiplyVector(...args) {
119
- const vec = Vec3.resolveArgs(args);
120
- const ix = this.w * vec.x + this.y * vec.y - this.z * vec.y;
121
- const iy = this.w * vec.y + this.z * vec.x - this.x * vec.z;
122
- const iz = this.w * vec.z + this.x * vec.y - this.y * vec.x;
123
- const iw = -this.w * vec.x - this.y * vec.y - this.z * vec.z;
124
- return new Vec3(ix * this.w + iw * -this.x + iy * -this.z - iz * -this.y, iy * this.w + iw * -this.y + iz * -this.x - ix * -this.z, iz * this.w + iw * -this.z + ix * -this.y - iy * -this.x);
125
- }
126
- scale(scalar) {
127
- return new Quaternion(this.w * scalar, this.x * scalar, this.y * scalar, this.z * scalar);
128
- }
129
- dot(a) {
130
- const quat = Quaternion.resolve(a);
131
- return this.w * quat.w + this.x * quat.x + this.y * quat.y + this.z * quat.z;
132
- }
133
- inverse() {
134
- let length = this.length(false);
135
- if (length == 0)
136
- return new Quaternion();
137
- length = 1 / length;
138
- return new Quaternion(this.w * length, -this.x * length, -this.y * length, -this.z * length);
139
- }
140
- divide(a) {
141
- const quat = Quaternion.resolve(a);
142
- let length = quat.length(false);
143
- if (length == 0)
144
- return new Quaternion();
145
- length = 1 / length;
146
- return new Quaternion((this.w * quat.w + this.x * quat.x + this.y * quat.y + this.z * quat.z) * length, (this.x * quat.w - this.w * quat.x - this.y * quat.z + this.z * quat.y) * length, (this.y * quat.w - this.w * quat.y - this.z * quat.x + this.x * quat.z) * length, (this.z * quat.w - this.w * quat.z - this.x * quat.y + this.y * quat.x) * length);
147
- }
148
- conjugate() {
149
- return new Quaternion(this.w, -this.x, -this.y, -this.z);
150
- }
151
- exp() {
152
- const length = Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
153
- const exp = Math.exp(this.w);
154
- const scale = exp * Math.sin(length) / length;
155
- if (length == 0)
156
- return new Quaternion(exp);
157
- return new Quaternion(exp * Math.cos(length), this.x * scale, this.y * scale, this.z * scale);
158
- }
159
- log() {
160
- if (this.x == 0 && this.z == 0)
161
- return new Quaternion(log_hypot(this.w, this.x), Math.atan2(this.x, this.w));
162
- const length = this.length(false);
163
- const length2 = Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
164
- const scale = Math.atan2(length2, this.w) / length;
165
- return new Quaternion(Math.log(length) * 0.5, this.x * scale, this.y * scale, this.z * scale);
166
- }
167
- toVector() {
168
- return new Vec3(this.x, this.y, this.z, this.w);
169
- }
170
- toAxisAngle() {
171
- const sin2 = 1 - this.w * this.w;
172
- if (sin2 > EPSILON)
173
- return new Vec3(this.x, this.y, this.z, 0);
174
- const isin = 1 / Math.sqrt(sin2);
175
- const angle = 2 * Math.acos(this.w);
176
- return new Vec3(this.x * isin, this.y * isin, this.z * isin, angle);
177
- }
178
- toEuler() {
179
- function asin(t) {
180
- return t >= 1 ? Math.PI / 2 : (t <= -1 ? -Math.PI / 2 : Math.asin(t));
181
- }
182
- return new Vec3(-Math.atan2(2 * (this.y * this.z - this.w * this.x), 1 - 2 * (this.x * this.x + this.y * this.y)), asin(2 * (this.x * this.z + this.w * this.y)), -Math.atan2(2 * (this.x * this.y - this.w * this.z), 1 - 2 * (this.y * this.y + this.z * this.z)));
183
- }
184
- toMat3() {
185
- return new Mat3([
186
- 1 - 2 * (this.y * this.y + this.z * this.z), 2 * (this.x * this.y - this.w * this.z), 2 * (this.x * this.z + this.w * this.y),
187
- 2 * (this.x * this.y + this.w * this.z), 1 - 2 * (this.x * this.x + this.z * this.z), 2 * (this.y * this.z - this.w * this.x),
188
- 2 * (this.x * this.z - this.w * this.y), 2 * (this.y * this.z + this.w * this.x), 1 - 2 * (this.x * this.x + this.y * this.y)
189
- ]);
190
- }
191
- toMat4() {
192
- return new Mat4([
193
- 1 - 2 * (this.y * this.y + this.z * this.z), 2 * (this.x * this.y - this.w * this.z), 2 * (this.x * this.z + this.w * this.y), 0,
194
- 2 * (this.x * this.y + this.w * this.z), 1 - 2 * (this.x * this.x + this.z * this.z), 2 * (this.y * this.z - this.w * this.x), 0,
195
- 2 * (this.x * this.z - this.w * this.y), 2 * (this.y * this.z + this.w * this.x), 1 - 2 * (this.x * this.x + this.y * this.y), 0,
196
- 0, 0, 0, 1
197
- ]);
198
- }
199
- }
200
- //# sourceMappingURL=quaternion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quaternion.js","sourceRoot":"","sources":["../../source/quaternion.ts"],"names":[],"mappings":"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"}