@pawells/math-extended 2.0.0 → 3.0.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 (118) hide show
  1. package/README.md +15 -21
  2. package/build/clamp.d.ts +5 -5
  3. package/build/clamp.js +5 -5
  4. package/build/core.d.ts +23 -0
  5. package/build/core.d.ts.map +1 -0
  6. package/build/core.js +25 -0
  7. package/build/core.js.map +1 -0
  8. package/build/index.d.ts +1 -4
  9. package/build/index.d.ts.map +1 -1
  10. package/build/index.js +1 -6
  11. package/build/index.js.map +1 -1
  12. package/build/interpolation.d.ts +158 -171
  13. package/build/interpolation.d.ts.map +1 -1
  14. package/build/interpolation.js +162 -181
  15. package/build/interpolation.js.map +1 -1
  16. package/build/matrices/arithmetic.d.ts +132 -132
  17. package/build/matrices/arithmetic.d.ts.map +1 -1
  18. package/build/matrices/arithmetic.js +194 -226
  19. package/build/matrices/arithmetic.js.map +1 -1
  20. package/build/matrices/asserts.d.ts +30 -408
  21. package/build/matrices/asserts.d.ts.map +1 -1
  22. package/build/matrices/asserts.js +98 -542
  23. package/build/matrices/asserts.js.map +1 -1
  24. package/build/matrices/core.d.ts +117 -46
  25. package/build/matrices/core.d.ts.map +1 -1
  26. package/build/matrices/core.js +127 -103
  27. package/build/matrices/core.js.map +1 -1
  28. package/build/matrices/decompositions.d.ts +95 -96
  29. package/build/matrices/decompositions.d.ts.map +1 -1
  30. package/build/matrices/decompositions.js +119 -160
  31. package/build/matrices/decompositions.js.map +1 -1
  32. package/build/matrices/index.d.ts +0 -1
  33. package/build/matrices/index.d.ts.map +1 -1
  34. package/build/matrices/index.js +0 -3
  35. package/build/matrices/index.js.map +1 -1
  36. package/build/matrices/linear-algebra.d.ts +45 -8
  37. package/build/matrices/linear-algebra.d.ts.map +1 -1
  38. package/build/matrices/linear-algebra.js +76 -32
  39. package/build/matrices/linear-algebra.js.map +1 -1
  40. package/build/matrices/normalization.d.ts +29 -8
  41. package/build/matrices/normalization.d.ts.map +1 -1
  42. package/build/matrices/normalization.js +32 -23
  43. package/build/matrices/normalization.js.map +1 -1
  44. package/build/matrices/transformations.d.ts +116 -148
  45. package/build/matrices/transformations.d.ts.map +1 -1
  46. package/build/matrices/transformations.js +69 -91
  47. package/build/matrices/transformations.js.map +1 -1
  48. package/build/matrices/types.d.ts +32 -60
  49. package/build/matrices/types.d.ts.map +1 -1
  50. package/build/matrices/types.js +63 -1
  51. package/build/matrices/types.js.map +1 -1
  52. package/build/quaternions/asserts.d.ts +29 -38
  53. package/build/quaternions/asserts.d.ts.map +1 -1
  54. package/build/quaternions/asserts.js +61 -77
  55. package/build/quaternions/asserts.js.map +1 -1
  56. package/build/quaternions/conversions.d.ts +26 -26
  57. package/build/quaternions/conversions.d.ts.map +1 -1
  58. package/build/quaternions/conversions.js +24 -24
  59. package/build/quaternions/core.d.ts +70 -69
  60. package/build/quaternions/core.d.ts.map +1 -1
  61. package/build/quaternions/core.js +71 -71
  62. package/build/quaternions/core.js.map +1 -1
  63. package/build/quaternions/index.d.ts +0 -1
  64. package/build/quaternions/index.d.ts.map +1 -1
  65. package/build/quaternions/index.js +0 -2
  66. package/build/quaternions/index.js.map +1 -1
  67. package/build/quaternions/interpolation.d.ts +16 -16
  68. package/build/quaternions/interpolation.d.ts.map +1 -1
  69. package/build/quaternions/interpolation.js +21 -21
  70. package/build/quaternions/interpolation.js.map +1 -1
  71. package/build/quaternions/predefined.d.ts +10 -10
  72. package/build/quaternions/predefined.d.ts.map +1 -1
  73. package/build/quaternions/predefined.js +9 -9
  74. package/build/quaternions/types.d.ts +23 -12
  75. package/build/quaternions/types.d.ts.map +1 -1
  76. package/build/quaternions/types.js +51 -1
  77. package/build/quaternions/types.js.map +1 -1
  78. package/build/random.d.ts +66 -20
  79. package/build/random.d.ts.map +1 -1
  80. package/build/random.js +73 -20
  81. package/build/random.js.map +1 -1
  82. package/build/vectors/asserts.d.ts +50 -220
  83. package/build/vectors/asserts.d.ts.map +1 -1
  84. package/build/vectors/asserts.js +141 -327
  85. package/build/vectors/asserts.js.map +1 -1
  86. package/build/vectors/core.d.ts +182 -229
  87. package/build/vectors/core.d.ts.map +1 -1
  88. package/build/vectors/core.js +234 -288
  89. package/build/vectors/core.js.map +1 -1
  90. package/build/vectors/index.d.ts +0 -1
  91. package/build/vectors/index.d.ts.map +1 -1
  92. package/build/vectors/index.js +0 -2
  93. package/build/vectors/index.js.map +1 -1
  94. package/build/vectors/interpolation.d.ts +40 -40
  95. package/build/vectors/interpolation.d.ts.map +1 -1
  96. package/build/vectors/interpolation.js +75 -86
  97. package/build/vectors/interpolation.js.map +1 -1
  98. package/build/vectors/predefined.d.ts +31 -7
  99. package/build/vectors/predefined.d.ts.map +1 -1
  100. package/build/vectors/predefined.js +30 -6
  101. package/build/vectors/predefined.js.map +1 -1
  102. package/build/vectors/types.d.ts +26 -4
  103. package/build/vectors/types.d.ts.map +1 -1
  104. package/build/vectors/types.js +50 -1
  105. package/build/vectors/types.js.map +1 -1
  106. package/package.json +3 -2
  107. package/build/matrices/_exports.d.ts +0 -13
  108. package/build/matrices/_exports.d.ts.map +0 -1
  109. package/build/matrices/_exports.js +0 -13
  110. package/build/matrices/_exports.js.map +0 -1
  111. package/build/quaternions/_exports.d.ts +0 -11
  112. package/build/quaternions/_exports.d.ts.map +0 -1
  113. package/build/quaternions/_exports.js +0 -11
  114. package/build/quaternions/_exports.js.map +0 -1
  115. package/build/vectors/_exports.d.ts +0 -10
  116. package/build/vectors/_exports.d.ts.map +0 -1
  117. package/build/vectors/_exports.js +0 -10
  118. package/build/vectors/_exports.js.map +0 -1
@@ -2,8 +2,9 @@
2
2
  * Core quaternion mathematics operations for rotation and orientation calculations.
3
3
  * Provides comprehensive quaternion operations with conversion utilities and interpolation.
4
4
  */
5
- import { TVector3 } from '../vectors/types.js';
6
- import { TQuaternion, TEulerAngles, TAxisAngle } from './types.js';
5
+ import type { TVector3 } from '../vectors/types.js';
6
+ import type { TQuaternion, TEulerAngles, TAxisAngle } from './types.js';
7
+ export declare const QUATERNION_TOLERANCE = 0.000001;
7
8
  /**
8
9
  * Creates an identity quaternion representing no rotation.
9
10
  * The identity quaternion is [0, 0, 0, 1] (x, y, z, w).
@@ -11,10 +12,10 @@ import { TQuaternion, TEulerAngles, TAxisAngle } from './types.js';
11
12
  * @returns Identity quaternion [0, 0, 0, 1]
12
13
  *
13
14
  * @example
14
- * ```typescript
15
- * const identity = QuaternionIdentity();
16
- * console.log(identity); // [0, 0, 0, 1]
17
- * ```
15
+ * ```typescript
16
+ * const identity = QuaternionIdentity();
17
+ * console.log(identity); // [0, 0, 0, 1]
18
+ * ```
18
19
  */
19
20
  export declare function QuaternionIdentity(): TQuaternion;
20
21
  /**
@@ -25,11 +26,11 @@ export declare function QuaternionIdentity(): TQuaternion;
25
26
  * @returns A new quaternion with identical components
26
27
  *
27
28
  * @example
28
- * ```typescript
29
- * const original = [0, 0, 0.707, 0.707];
30
- * const copy = QuaternionClone(original);
31
- * copy[0] = 1; // original remains unchanged
32
- * ```
29
+ * ```typescript
30
+ * const original = [0, 0, 0.707, 0.707];
31
+ * const copy = QuaternionClone(original);
32
+ * copy[0] = 1; // original remains unchanged
33
+ * ```
33
34
  */
34
35
  export declare function QuaternionClone(quaternion: TQuaternion): TQuaternion;
35
36
  /**
@@ -44,12 +45,12 @@ export declare function QuaternionClone(quaternion: TQuaternion): TQuaternion;
44
45
  * @returns True if quaternions are equal within tolerance
45
46
  *
46
47
  * @example
47
- * ```typescript
48
- * const q1 = [0, 0, 0, 1];
49
- * const q2 = [0, 0, 0, -1];
50
- * console.log(QuaternionEquals(q1, q2)); // false (different components)
51
- * console.log(QuaternionEquals(q1, q2, 1e-6, true)); // true (same rotation)
52
- * ```
48
+ * ```typescript
49
+ * const q1 = [0, 0, 0, 1];
50
+ * const q2 = [0, 0, 0, -1];
51
+ * console.log(QuaternionEquals(q1, q2)); // false (different components)
52
+ * console.log(QuaternionEquals(q1, q2, 1e-6, true)); // true (same rotation)
53
+ * ```
53
54
  */
54
55
  export declare function QuaternionEquals(a: TQuaternion, b: TQuaternion, tolerance?: number, checkEquivalence?: boolean): boolean;
55
56
  /**
@@ -60,10 +61,10 @@ export declare function QuaternionEquals(a: TQuaternion, b: TQuaternion, toleran
60
61
  * @returns The magnitude of the quaternion
61
62
  *
62
63
  * @example
63
- * ```typescript
64
- * const q = [0, 0, 0, 1];
65
- * console.log(QuaternionMagnitude(q)); // 1
66
- * ```
64
+ * ```typescript
65
+ * const q = [0, 0, 0, 1];
66
+ * console.log(QuaternionMagnitude(q)); // 1
67
+ * ```
67
68
  */
68
69
  export declare function QuaternionMagnitude(quaternion: TQuaternion): number;
69
70
  /**
@@ -74,11 +75,11 @@ export declare function QuaternionMagnitude(quaternion: TQuaternion): number;
74
75
  * @returns A normalized quaternion with magnitude 1
75
76
  *
76
77
  * @example
77
- * ```typescript
78
- * const q = [1, 1, 1, 1];
79
- * const normalized = QuaternionNormalize(q);
80
- * console.log(QuaternionMagnitude(normalized)); // 1
81
- * ```
78
+ * ```typescript
79
+ * const q = [1, 1, 1, 1];
80
+ * const normalized = QuaternionNormalize(q);
81
+ * console.log(QuaternionMagnitude(normalized)); // 1
82
+ * ```
82
83
  */
83
84
  export declare function QuaternionNormalize(quaternion: TQuaternion): TQuaternion;
84
85
  /**
@@ -90,11 +91,11 @@ export declare function QuaternionNormalize(quaternion: TQuaternion): TQuaternio
90
91
  * @returns The conjugate quaternion
91
92
  *
92
93
  * @example
93
- * ```typescript
94
- * const q = [0.5, 0.5, 0.5, 0.5];
95
- * const conjugate = QuaternionConjugate(q);
96
- * console.log(conjugate); // [-0.5, -0.5, -0.5, 0.5]
97
- * ```
94
+ * ```typescript
95
+ * const q = [0.5, 0.5, 0.5, 0.5];
96
+ * const conjugate = QuaternionConjugate(q);
97
+ * console.log(conjugate); // [-0.5, -0.5, -0.5, 0.5]
98
+ * ```
98
99
  */
99
100
  export declare function QuaternionConjugate(quaternion: TQuaternion): TQuaternion;
100
101
  /**
@@ -106,10 +107,10 @@ export declare function QuaternionConjugate(quaternion: TQuaternion): TQuaternio
106
107
  * @returns The inverse quaternion
107
108
  *
108
109
  * @example
109
- * ```typescript
110
- * const q = [0, 0, 0.707, 0.707]; // 90° rotation around Z
111
- * const inverse = QuaternionInverse(q); // -90° rotation around Z
112
- * ```
110
+ * ```typescript
111
+ * const q = [0, 0, 0.707, 0.707]; // 90° rotation around Z
112
+ * const inverse = QuaternionInverse(q); // -90° rotation around Z
113
+ * ```
113
114
  */
114
115
  export declare function QuaternionInverse(quaternion: TQuaternion): TQuaternion;
115
116
  /**
@@ -122,11 +123,11 @@ export declare function QuaternionInverse(quaternion: TQuaternion): TQuaternion;
122
123
  * @returns The product quaternion representing the combined rotation
123
124
  *
124
125
  * @example
125
- * ```typescript
126
- * const rotX = QuaternionFromAxisAngle([1, 0, 0], Math.PI/2); // 90° around X
127
- * const rotY = QuaternionFromAxisAngle([0, 1, 0], Math.PI/2); // 90° around Y
128
- * const combined = QuaternionMultiply(rotX, rotY); // Y rotation then X rotation
129
- * ```
126
+ * ```typescript
127
+ * const rotX = QuaternionFromAxisAngle([1, 0, 0], Math.PI/2); // 90° around X
128
+ * const rotY = QuaternionFromAxisAngle([0, 1, 0], Math.PI/2); // 90° around Y
129
+ * const combined = QuaternionMultiply(rotX, rotY); // Y rotation then X rotation
130
+ * ```
130
131
  */
131
132
  export declare function QuaternionMultiply(a: TQuaternion, b: TQuaternion): TQuaternion;
132
133
  /**
@@ -138,11 +139,11 @@ export declare function QuaternionMultiply(a: TQuaternion, b: TQuaternion): TQua
138
139
  * @returns A quaternion representing the rotation
139
140
  *
140
141
  * @example
141
- * ```typescript
142
- * const axis = [0, 1, 0]; // Y-axis
143
- * const angle = Math.PI / 2; // 90 degrees
144
- * const q = QuaternionFromAxisAngle(axis, angle);
145
- * ```
142
+ * ```typescript
143
+ * const axis = [0, 1, 0]; // Y-axis
144
+ * const angle = Math.PI / 2; // 90 degrees
145
+ * const q = QuaternionFromAxisAngle(axis, angle);
146
+ * ```
146
147
  */
147
148
  export declare function QuaternionFromAxisAngle(axis: TVector3, angle: number): TQuaternion;
148
149
  /**
@@ -163,11 +164,11 @@ export declare function QuaternionFromAxisAngleVector(axisAngle: TAxisAngle): TQ
163
164
  * @throws {Error} If the quaternion is not normalized
164
165
  *
165
166
  * @example
166
- * ```typescript
167
- * const q = [0, 0.707, 0, 0.707]; // 90° around Y-axis
168
- * const axisAngle = QuaternionToAxisAngle(q);
169
- * console.log(axisAngle); // [0, 1, 0, π/2]
170
- * ```
167
+ * ```typescript
168
+ * const q = [0, 0.707, 0, 0.707]; // 90° around Y-axis
169
+ * const axisAngle = QuaternionToAxisAngle(q);
170
+ * console.log(axisAngle); // [0, 1, 0, π/2]
171
+ * ```
171
172
  */
172
173
  export declare function QuaternionToAxisAngle(quaternion: TQuaternion): TAxisAngle;
173
174
  /**
@@ -178,10 +179,10 @@ export declare function QuaternionToAxisAngle(quaternion: TQuaternion): TAxisAng
178
179
  * @returns A quaternion representing the rotation
179
180
  *
180
181
  * @example
181
- * ```typescript
182
- * const euler = [0, Math.PI/4, 0]; // 45° pitch
183
- * const q = QuaternionFromEuler(euler);
184
- * ```
182
+ * ```typescript
183
+ * const euler = [0, Math.PI/4, 0]; // 45° pitch
184
+ * const q = QuaternionFromEuler(euler);
185
+ * ```
185
186
  */
186
187
  export declare function QuaternionFromEuler(euler: TEulerAngles): TQuaternion;
187
188
  /**
@@ -192,11 +193,11 @@ export declare function QuaternionFromEuler(euler: TEulerAngles): TQuaternion;
192
193
  * @returns Euler angles as [x, y, z] in radians
193
194
  *
194
195
  * @example
195
- * ```typescript
196
- * const q = [0, 0.383, 0, 0.924]; // ~45° around Y-axis
197
- * const euler = QuaternionToEuler(q);
198
- * console.log(euler); // [0, π/4, 0]
199
- * ```
196
+ * ```typescript
197
+ * const q = [0, 0.383, 0, 0.924]; // ~45° around Y-axis
198
+ * const euler = QuaternionToEuler(q);
199
+ * console.log(euler); // [0, π/4, 0]
200
+ * ```
200
201
  */
201
202
  export declare function QuaternionToEuler(quaternion: TQuaternion): TEulerAngles;
202
203
  /**
@@ -208,11 +209,11 @@ export declare function QuaternionToEuler(quaternion: TQuaternion): TEulerAngles
208
209
  * @returns The rotated vector
209
210
  *
210
211
  * @example
211
- * ```typescript
212
- * const q = QuaternionFromAxisAngle([0, 0, 1], Math.PI/2); // 90° around Z
213
- * const v = [1, 0, 0]; // Point along X-axis
214
- * const rotated = QuaternionRotateVector(q, v); // Should point along Y-axis
215
- * ```
212
+ * ```typescript
213
+ * const q = QuaternionFromAxisAngle([0, 0, 1], Math.PI/2); // 90° around Z
214
+ * const v = [1, 0, 0]; // Point along X-axis
215
+ * const rotated = QuaternionRotateVector(q, v); // Should point along Y-axis
216
+ * ```
216
217
  */
217
218
  export declare function QuaternionRotateVector(quaternion: TQuaternion, vector: TVector3): TVector3;
218
219
  /**
@@ -225,11 +226,11 @@ export declare function QuaternionRotateVector(quaternion: TQuaternion, vector:
225
226
  * @returns Interpolated quaternion
226
227
  *
227
228
  * @example
228
- * ```typescript
229
- * const q1 = QuaternionIdentity();
230
- * const q2 = QuaternionFromAxisAngle([0, 1, 0], Math.PI/2);
231
- * const halfway = QuaternionSLERP(q1, q2, 0.5); // 45° rotation
232
- * ```
229
+ * ```typescript
230
+ * const q1 = QuaternionIdentity();
231
+ * const q2 = QuaternionFromAxisAngle([0, 1, 0], Math.PI/2);
232
+ * const halfway = QuaternionSLERP(q1, q2, 0.5); // 45° rotation
233
+ * ```
233
234
  */
234
235
  export declare function QuaternionSLERP(a: TQuaternion, b: TQuaternion, t: number): TQuaternion;
235
236
  //# sourceMappingURL=core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/quaternions/core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAMnE;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,IAAI,WAAW,CAEhD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,CAGpE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,SAAS,GAAE,MAAa,EAAE,gBAAgB,GAAE,OAAe,GAAG,OAAO,CAcrI;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,WAAW,GAAG,MAAM,CAGnE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,CAGxE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,CAKxE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,CAiBtE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,CAa9E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAYlF;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,UAAU,GAAG,WAAW,CAKhF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,WAAW,GAAG,UAAU,CA4BzE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW,CAiBpE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,WAAW,GAAG,YAAY,CAoBvE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAsB1F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,CAwCtF"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/quaternions/core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxE,eAAO,MAAM,oBAAoB,WAAO,CAAC;AAGzC;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,IAAI,WAAW,CAEhD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,CAGpE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,SAAS,GAAE,MAAa,EAAE,gBAAgB,GAAE,OAAe,GAAG,OAAO,CAcrI;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,WAAW,GAAG,MAAM,CAGnE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,CAGxE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,CAKxE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,CAiBtE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,CAa9E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAYlF;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,UAAU,GAAG,WAAW,CAKhF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,WAAW,GAAG,UAAU,CA4BzE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW,CAiBpE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,WAAW,GAAG,YAAY,CAoBvE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAsB1F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,CAwCtF"}
@@ -3,9 +3,9 @@
3
3
  * Provides comprehensive quaternion operations with conversion utilities and interpolation.
4
4
  */
5
5
  import { VectorClone, VectorDot, VectorMagnitude, VectorNormalize, VectorEquals, Vector3Cross } from '../vectors/core.js';
6
- import { AssertQuaternion, AssertNormalizedQuaternion, AssertEulerAngles, AssertAxisAngle } from './asserts.js';
6
+ import { AssertQuaternion, AssertNormalizedQuaternion, AssertEulerAngles, AssertAxisAngle, QuaternionError } from './asserts.js';
7
7
  const QUATERNION_MAGNITUDE_TOLERANCE = 1e-10;
8
- const QUATERNION_ANGLE_TOLERANCE = 1e-6;
8
+ export const QUATERNION_TOLERANCE = 1e-6;
9
9
  const SLERP_DOT_THRESHOLD = 0.9995;
10
10
  /**
11
11
  * Creates an identity quaternion representing no rotation.
@@ -14,10 +14,10 @@ const SLERP_DOT_THRESHOLD = 0.9995;
14
14
  * @returns Identity quaternion [0, 0, 0, 1]
15
15
  *
16
16
  * @example
17
- * ```typescript
18
- * const identity = QuaternionIdentity();
19
- * console.log(identity); // [0, 0, 0, 1]
20
- * ```
17
+ * ```typescript
18
+ * const identity = QuaternionIdentity();
19
+ * console.log(identity); // [0, 0, 0, 1]
20
+ * ```
21
21
  */
22
22
  export function QuaternionIdentity() {
23
23
  return [0, 0, 0, 1];
@@ -30,11 +30,11 @@ export function QuaternionIdentity() {
30
30
  * @returns A new quaternion with identical components
31
31
  *
32
32
  * @example
33
- * ```typescript
34
- * const original = [0, 0, 0.707, 0.707];
35
- * const copy = QuaternionClone(original);
36
- * copy[0] = 1; // original remains unchanged
37
- * ```
33
+ * ```typescript
34
+ * const original = [0, 0, 0.707, 0.707];
35
+ * const copy = QuaternionClone(original);
36
+ * copy[0] = 1; // original remains unchanged
37
+ * ```
38
38
  */
39
39
  export function QuaternionClone(quaternion) {
40
40
  AssertQuaternion(quaternion);
@@ -52,12 +52,12 @@ export function QuaternionClone(quaternion) {
52
52
  * @returns True if quaternions are equal within tolerance
53
53
  *
54
54
  * @example
55
- * ```typescript
56
- * const q1 = [0, 0, 0, 1];
57
- * const q2 = [0, 0, 0, -1];
58
- * console.log(QuaternionEquals(q1, q2)); // false (different components)
59
- * console.log(QuaternionEquals(q1, q2, 1e-6, true)); // true (same rotation)
60
- * ```
55
+ * ```typescript
56
+ * const q1 = [0, 0, 0, 1];
57
+ * const q2 = [0, 0, 0, -1];
58
+ * console.log(QuaternionEquals(q1, q2)); // false (different components)
59
+ * console.log(QuaternionEquals(q1, q2, 1e-6, true)); // true (same rotation)
60
+ * ```
61
61
  */
62
62
  export function QuaternionEquals(a, b, tolerance = 1e-6, checkEquivalence = false) {
63
63
  AssertQuaternion(a);
@@ -79,10 +79,10 @@ export function QuaternionEquals(a, b, tolerance = 1e-6, checkEquivalence = fals
79
79
  * @returns The magnitude of the quaternion
80
80
  *
81
81
  * @example
82
- * ```typescript
83
- * const q = [0, 0, 0, 1];
84
- * console.log(QuaternionMagnitude(q)); // 1
85
- * ```
82
+ * ```typescript
83
+ * const q = [0, 0, 0, 1];
84
+ * console.log(QuaternionMagnitude(q)); // 1
85
+ * ```
86
86
  */
87
87
  export function QuaternionMagnitude(quaternion) {
88
88
  AssertQuaternion(quaternion);
@@ -96,11 +96,11 @@ export function QuaternionMagnitude(quaternion) {
96
96
  * @returns A normalized quaternion with magnitude 1
97
97
  *
98
98
  * @example
99
- * ```typescript
100
- * const q = [1, 1, 1, 1];
101
- * const normalized = QuaternionNormalize(q);
102
- * console.log(QuaternionMagnitude(normalized)); // 1
103
- * ```
99
+ * ```typescript
100
+ * const q = [1, 1, 1, 1];
101
+ * const normalized = QuaternionNormalize(q);
102
+ * console.log(QuaternionMagnitude(normalized)); // 1
103
+ * ```
104
104
  */
105
105
  export function QuaternionNormalize(quaternion) {
106
106
  AssertQuaternion(quaternion);
@@ -115,11 +115,11 @@ export function QuaternionNormalize(quaternion) {
115
115
  * @returns The conjugate quaternion
116
116
  *
117
117
  * @example
118
- * ```typescript
119
- * const q = [0.5, 0.5, 0.5, 0.5];
120
- * const conjugate = QuaternionConjugate(q);
121
- * console.log(conjugate); // [-0.5, -0.5, -0.5, 0.5]
122
- * ```
118
+ * ```typescript
119
+ * const q = [0.5, 0.5, 0.5, 0.5];
120
+ * const conjugate = QuaternionConjugate(q);
121
+ * console.log(conjugate); // [-0.5, -0.5, -0.5, 0.5]
122
+ * ```
123
123
  */
124
124
  export function QuaternionConjugate(quaternion) {
125
125
  AssertQuaternion(quaternion);
@@ -135,17 +135,17 @@ export function QuaternionConjugate(quaternion) {
135
135
  * @returns The inverse quaternion
136
136
  *
137
137
  * @example
138
- * ```typescript
139
- * const q = [0, 0, 0.707, 0.707]; // 90° rotation around Z
140
- * const inverse = QuaternionInverse(q); // -90° rotation around Z
141
- * ```
138
+ * ```typescript
139
+ * const q = [0, 0, 0.707, 0.707]; // 90° rotation around Z
140
+ * const inverse = QuaternionInverse(q); // -90° rotation around Z
141
+ * ```
142
142
  */
143
143
  export function QuaternionInverse(quaternion) {
144
144
  AssertQuaternion(quaternion);
145
145
  const conjugate = QuaternionConjugate(quaternion);
146
146
  const magnitudeSquared = VectorDot(quaternion, quaternion);
147
147
  if (Math.abs(magnitudeSquared) < QUATERNION_MAGNITUDE_TOLERANCE) {
148
- throw new Error('Cannot invert quaternion with zero magnitude');
148
+ throw new QuaternionError('Cannot invert quaternion with zero magnitude');
149
149
  }
150
150
  // For unit quaternions, magnitude squared is 1, so this is just the conjugate
151
151
  return [
@@ -165,11 +165,11 @@ export function QuaternionInverse(quaternion) {
165
165
  * @returns The product quaternion representing the combined rotation
166
166
  *
167
167
  * @example
168
- * ```typescript
169
- * const rotX = QuaternionFromAxisAngle([1, 0, 0], Math.PI/2); // 90° around X
170
- * const rotY = QuaternionFromAxisAngle([0, 1, 0], Math.PI/2); // 90° around Y
171
- * const combined = QuaternionMultiply(rotX, rotY); // Y rotation then X rotation
172
- * ```
168
+ * ```typescript
169
+ * const rotX = QuaternionFromAxisAngle([1, 0, 0], Math.PI/2); // 90° around X
170
+ * const rotY = QuaternionFromAxisAngle([0, 1, 0], Math.PI/2); // 90° around Y
171
+ * const combined = QuaternionMultiply(rotX, rotY); // Y rotation then X rotation
172
+ * ```
173
173
  */
174
174
  export function QuaternionMultiply(a, b) {
175
175
  AssertQuaternion(a);
@@ -192,11 +192,11 @@ export function QuaternionMultiply(a, b) {
192
192
  * @returns A quaternion representing the rotation
193
193
  *
194
194
  * @example
195
- * ```typescript
196
- * const axis = [0, 1, 0]; // Y-axis
197
- * const angle = Math.PI / 2; // 90 degrees
198
- * const q = QuaternionFromAxisAngle(axis, angle);
199
- * ```
195
+ * ```typescript
196
+ * const axis = [0, 1, 0]; // Y-axis
197
+ * const angle = Math.PI / 2; // 90 degrees
198
+ * const q = QuaternionFromAxisAngle(axis, angle);
199
+ * ```
200
200
  */
201
201
  export function QuaternionFromAxisAngle(axis, angle) {
202
202
  const normalizedAxis = VectorNormalize(axis);
@@ -232,11 +232,11 @@ export function QuaternionFromAxisAngleVector(axisAngle) {
232
232
  * @throws {Error} If the quaternion is not normalized
233
233
  *
234
234
  * @example
235
- * ```typescript
236
- * const q = [0, 0.707, 0, 0.707]; // 90° around Y-axis
237
- * const axisAngle = QuaternionToAxisAngle(q);
238
- * console.log(axisAngle); // [0, 1, 0, π/2]
239
- * ```
235
+ * ```typescript
236
+ * const q = [0, 0.707, 0, 0.707]; // 90° around Y-axis
237
+ * const axisAngle = QuaternionToAxisAngle(q);
238
+ * console.log(axisAngle); // [0, 1, 0, π/2]
239
+ * ```
240
240
  */
241
241
  export function QuaternionToAxisAngle(quaternion) {
242
242
  AssertNormalizedQuaternion(quaternion);
@@ -250,7 +250,7 @@ export function QuaternionToAxisAngle(quaternion) {
250
250
  }
251
251
  const angle = 2 * Math.acos(Math.min(1, qw));
252
252
  const sinHalfAngle = Math.sqrt(1 - (qw * qw));
253
- if (sinHalfAngle < QUATERNION_ANGLE_TOLERANCE) {
253
+ if (sinHalfAngle < QUATERNION_TOLERANCE) {
254
254
  // Avoid division by zero for small angles
255
255
  return [1, 0, 0, 0];
256
256
  }
@@ -269,10 +269,10 @@ export function QuaternionToAxisAngle(quaternion) {
269
269
  * @returns A quaternion representing the rotation
270
270
  *
271
271
  * @example
272
- * ```typescript
273
- * const euler = [0, Math.PI/4, 0]; // 45° pitch
274
- * const q = QuaternionFromEuler(euler);
275
- * ```
272
+ * ```typescript
273
+ * const euler = [0, Math.PI/4, 0]; // 45° pitch
274
+ * const q = QuaternionFromEuler(euler);
275
+ * ```
276
276
  */
277
277
  export function QuaternionFromEuler(euler) {
278
278
  AssertEulerAngles(euler);
@@ -298,11 +298,11 @@ export function QuaternionFromEuler(euler) {
298
298
  * @returns Euler angles as [x, y, z] in radians
299
299
  *
300
300
  * @example
301
- * ```typescript
302
- * const q = [0, 0.383, 0, 0.924]; // ~45° around Y-axis
303
- * const euler = QuaternionToEuler(q);
304
- * console.log(euler); // [0, π/4, 0]
305
- * ```
301
+ * ```typescript
302
+ * const q = [0, 0.383, 0, 0.924]; // ~45° around Y-axis
303
+ * const euler = QuaternionToEuler(q);
304
+ * console.log(euler); // [0, π/4, 0]
305
+ * ```
306
306
  */
307
307
  export function QuaternionToEuler(quaternion) {
308
308
  AssertNormalizedQuaternion(quaternion);
@@ -329,11 +329,11 @@ export function QuaternionToEuler(quaternion) {
329
329
  * @returns The rotated vector
330
330
  *
331
331
  * @example
332
- * ```typescript
333
- * const q = QuaternionFromAxisAngle([0, 0, 1], Math.PI/2); // 90° around Z
334
- * const v = [1, 0, 0]; // Point along X-axis
335
- * const rotated = QuaternionRotateVector(q, v); // Should point along Y-axis
336
- * ```
332
+ * ```typescript
333
+ * const q = QuaternionFromAxisAngle([0, 0, 1], Math.PI/2); // 90° around Z
334
+ * const v = [1, 0, 0]; // Point along X-axis
335
+ * const rotated = QuaternionRotateVector(q, v); // Should point along Y-axis
336
+ * ```
337
337
  */
338
338
  export function QuaternionRotateVector(quaternion, vector) {
339
339
  AssertNormalizedQuaternion(quaternion);
@@ -365,11 +365,11 @@ export function QuaternionRotateVector(quaternion, vector) {
365
365
  * @returns Interpolated quaternion
366
366
  *
367
367
  * @example
368
- * ```typescript
369
- * const q1 = QuaternionIdentity();
370
- * const q2 = QuaternionFromAxisAngle([0, 1, 0], Math.PI/2);
371
- * const halfway = QuaternionSLERP(q1, q2, 0.5); // 45° rotation
372
- * ```
368
+ * ```typescript
369
+ * const q1 = QuaternionIdentity();
370
+ * const q2 = QuaternionFromAxisAngle([0, 1, 0], Math.PI/2);
371
+ * const halfway = QuaternionSLERP(q1, q2, 0.5); // 45° rotation
372
+ * ```
373
373
  */
374
374
  export function QuaternionSLERP(a, b, t) {
375
375
  AssertNormalizedQuaternion(a);
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/quaternions/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/quaternions/core.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,4 @@ export * from './asserts.js';
4
4
  export * from './conversions.js';
5
5
  export * from './interpolation.js';
6
6
  export * from './predefined.js';
7
- export * as QuaternionNamespace from './_exports.js';
8
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/quaternions/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAGhC,OAAO,KAAK,mBAAmB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/quaternions/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC"}
@@ -5,6 +5,4 @@ export * from './asserts.js';
5
5
  export * from './conversions.js';
6
6
  export * from './interpolation.js';
7
7
  export * from './predefined.js';
8
- // Namespace re-exports for grouped access
9
- export * as QuaternionNamespace from './_exports.js';
10
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/quaternions/index.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAEhC,0CAA0C;AAC1C,OAAO,KAAK,mBAAmB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/quaternions/index.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Advanced interpolation utilities for quaternions.
3
3
  * Provides specialized interpolation methods for smooth rotation animations.
4
4
  */
5
- import { TQuaternion } from './types.js';
5
+ import type { TQuaternion } from './types.js';
6
6
  /**
7
7
  * Performs normalized linear interpolation (NLERP) between two quaternions.
8
8
  * NLERP is faster than SLERP but doesn't maintain constant angular velocity.
@@ -14,11 +14,11 @@ import { TQuaternion } from './types.js';
14
14
  * @returns Interpolated and normalized quaternion
15
15
  *
16
16
  * @example
17
- * ```typescript
18
- * const q1 = [0, 0, 0, 1];
19
- * const q2 = [0, 0, 0.707, 0.707];
20
- * const interpolated = QuaternionNLERP(q1, q2, 0.5);
21
- * ```
17
+ * ```typescript
18
+ * const q1 = [0, 0, 0, 1];
19
+ * const q2 = [0, 0, 0.707, 0.707];
20
+ * const interpolated = QuaternionNLERP(q1, q2, 0.5);
21
+ * ```
22
22
  */
23
23
  export declare function QuaternionNLERP(a: TQuaternion, b: TQuaternion, t: number): TQuaternion;
24
24
  /**
@@ -33,11 +33,11 @@ export declare function QuaternionNLERP(a: TQuaternion, b: TQuaternion, t: numbe
33
33
  * @returns Smoothly interpolated quaternion
34
34
  *
35
35
  * @example
36
- * ```typescript
37
- * // Create a smooth path through multiple rotations
38
- * const path = [q0, q1, q2, q3]; // Array of quaternions
39
- * const smooth = QuaternionSQUAD(path[0], path[1], path[2], path[3], 0.5);
40
- * ```
36
+ * ```typescript
37
+ * // Create a smooth path through multiple rotations
38
+ * const path = [q0, q1, q2, q3]; // Array of quaternions
39
+ * const smooth = QuaternionSQUAD(path[0], path[1], path[2], path[3], 0.5);
40
+ * ```
41
41
  */
42
42
  export declare function QuaternionSQUAD(q0: TQuaternion, q1: TQuaternion, q2: TQuaternion, q3: TQuaternion, t: number): TQuaternion;
43
43
  /**
@@ -50,11 +50,11 @@ export declare function QuaternionSQUAD(q0: TQuaternion, q1: TQuaternion, q2: TQ
50
50
  * @returns Function that takes t ∈ [0, 1] and returns interpolated quaternion
51
51
  *
52
52
  * @example
53
- * ```typescript
54
- * const path = [q1, q2, q3, q4];
55
- * const interpolator = QuaternionCreatePath(path, 'slerp');
56
- * const halfway = interpolator(0.5); // Interpolated quaternion at 50% along path
57
- * ```
53
+ * ```typescript
54
+ * const path = [q1, q2, q3, q4];
55
+ * const interpolator = QuaternionCreatePath(path, 'slerp');
56
+ * const halfway = interpolator(0.5); // Interpolated quaternion at 50% along path
57
+ * ```
58
58
  */
59
59
  export declare function QuaternionCreatePath(quaternions: TQuaternion[], method?: 'slerp' | 'nlerp' | 'squad'): (t: number) => TQuaternion;
60
60
  //# sourceMappingURL=interpolation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interpolation.d.ts","sourceRoot":"","sources":["../../src/quaternions/interpolation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAMzC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,CAoBtF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,CAiB1H;AAkFD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CACnC,WAAW,EAAE,WAAW,EAAE,EAC1B,MAAM,GAAE,OAAO,GAAG,OAAO,GAAG,OAAiB,GAC3C,CAAC,CAAC,EAAE,MAAM,KAAK,WAAW,CAkD5B"}
1
+ {"version":3,"file":"interpolation.d.ts","sourceRoot":"","sources":["../../src/quaternions/interpolation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK9C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,CAoBtF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,CAiB1H;AAkFD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CACnC,WAAW,EAAE,WAAW,EAAE,EAC1B,MAAM,GAAE,OAAO,GAAG,OAAO,GAAG,OAAiB,GAC3C,CAAC,CAAC,EAAE,MAAM,KAAK,WAAW,CAkD5B"}