@pawells/math-extended 1.0.5 → 2.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.
- package/README.md +5 -5
- package/build/angles.d.ts +43 -3
- package/build/angles.d.ts.map +1 -1
- package/build/angles.js +61 -34
- package/build/angles.js.map +1 -1
- package/build/clamp.d.ts +5 -3
- package/build/clamp.d.ts.map +1 -1
- package/build/clamp.js +5 -3
- package/build/clamp.js.map +1 -1
- package/build/interpolation.d.ts +444 -67
- package/build/interpolation.d.ts.map +1 -1
- package/build/interpolation.js +444 -67
- package/build/interpolation.js.map +1 -1
- package/build/matrices/_exports.d.ts +13 -0
- package/build/matrices/_exports.d.ts.map +1 -0
- package/build/matrices/_exports.js +13 -0
- package/build/matrices/_exports.js.map +1 -0
- package/build/matrices/arithmetic.d.ts +170 -181
- package/build/matrices/arithmetic.d.ts.map +1 -1
- package/build/matrices/arithmetic.js +192 -202
- package/build/matrices/arithmetic.js.map +1 -1
- package/build/matrices/asserts.d.ts +244 -116
- package/build/matrices/asserts.d.ts.map +1 -1
- package/build/matrices/asserts.js +291 -94
- package/build/matrices/asserts.js.map +1 -1
- package/build/matrices/core.d.ts +40 -41
- package/build/matrices/core.d.ts.map +1 -1
- package/build/matrices/core.js +12 -13
- package/build/matrices/core.js.map +1 -1
- package/build/matrices/decompositions.d.ts +121 -124
- package/build/matrices/decompositions.d.ts.map +1 -1
- package/build/matrices/decompositions.js +168 -226
- package/build/matrices/decompositions.js.map +1 -1
- package/build/matrices/index.d.ts +3 -2
- package/build/matrices/index.d.ts.map +1 -1
- package/build/matrices/index.js +5 -2
- package/build/matrices/index.js.map +1 -1
- package/build/matrices/linear-algebra.d.ts +18 -13
- package/build/matrices/linear-algebra.d.ts.map +1 -1
- package/build/matrices/linear-algebra.js +58 -23
- package/build/matrices/linear-algebra.js.map +1 -1
- package/build/matrices/normalization.d.ts +8 -8
- package/build/matrices/transformations.d.ts +184 -168
- package/build/matrices/transformations.d.ts.map +1 -1
- package/build/matrices/transformations.js +99 -83
- package/build/matrices/transformations.js.map +1 -1
- package/build/matrices/types.d.ts +12 -12
- package/build/matrices/types.d.ts.map +1 -1
- package/build/quaternions/_exports.d.ts +11 -0
- package/build/quaternions/_exports.d.ts.map +1 -0
- package/build/quaternions/_exports.js +11 -0
- package/build/quaternions/_exports.js.map +1 -0
- package/build/quaternions/asserts.d.ts +115 -7
- package/build/quaternions/asserts.d.ts.map +1 -1
- package/build/quaternions/asserts.js +162 -8
- package/build/quaternions/asserts.js.map +1 -1
- package/build/quaternions/conversions.d.ts +31 -21
- package/build/quaternions/conversions.d.ts.map +1 -1
- package/build/quaternions/conversions.js +28 -18
- package/build/quaternions/conversions.js.map +1 -1
- package/build/quaternions/core.d.ts +73 -41
- package/build/quaternions/core.d.ts.map +1 -1
- package/build/quaternions/core.js +84 -49
- package/build/quaternions/core.js.map +1 -1
- package/build/quaternions/index.d.ts +3 -2
- package/build/quaternions/index.d.ts.map +1 -1
- package/build/quaternions/index.js +5 -2
- package/build/quaternions/index.js.map +1 -1
- package/build/quaternions/interpolation.d.ts +15 -9
- package/build/quaternions/interpolation.d.ts.map +1 -1
- package/build/quaternions/interpolation.js +15 -9
- package/build/quaternions/interpolation.js.map +1 -1
- package/build/quaternions/predefined.d.ts +9 -3
- package/build/quaternions/predefined.d.ts.map +1 -1
- package/build/quaternions/predefined.js +9 -3
- package/build/quaternions/predefined.js.map +1 -1
- package/build/quaternions/types.d.ts +3 -3
- package/build/random.d.ts +5 -2
- package/build/random.d.ts.map +1 -1
- package/build/random.js +20 -17
- package/build/random.js.map +1 -1
- package/build/vectors/_exports.d.ts +10 -0
- package/build/vectors/_exports.d.ts.map +1 -0
- package/build/vectors/_exports.js +10 -0
- package/build/vectors/_exports.js.map +1 -0
- package/build/vectors/asserts.d.ts +153 -49
- package/build/vectors/asserts.d.ts.map +1 -1
- package/build/vectors/asserts.js +202 -52
- package/build/vectors/asserts.js.map +1 -1
- package/build/vectors/core.d.ts +216 -137
- package/build/vectors/core.d.ts.map +1 -1
- package/build/vectors/core.js +217 -158
- package/build/vectors/core.js.map +1 -1
- package/build/vectors/index.d.ts +1 -0
- package/build/vectors/index.d.ts.map +1 -1
- package/build/vectors/index.js +3 -0
- package/build/vectors/index.js.map +1 -1
- package/build/vectors/interpolation.d.ts +39 -27
- package/build/vectors/interpolation.d.ts.map +1 -1
- package/build/vectors/interpolation.js +39 -27
- package/build/vectors/interpolation.js.map +1 -1
- package/build/vectors/predefined.d.ts +48 -24
- package/build/vectors/predefined.d.ts.map +1 -1
- package/build/vectors/predefined.js +38 -18
- package/build/vectors/predefined.js.map +1 -1
- package/package.json +12 -15
|
@@ -12,9 +12,6 @@
|
|
|
12
12
|
*
|
|
13
13
|
* All matrices use homogeneous coordinates for consistent transformation composition.
|
|
14
14
|
* 2D transformations use 3x3 matrices, 3D transformations use 4x4 matrices.
|
|
15
|
-
*
|
|
16
|
-
* @author JTV Development Team
|
|
17
|
-
* @since 1.0.0
|
|
18
15
|
*/
|
|
19
16
|
import { AssertNumber, AssertNotEquals } from '@pawells/typescript-common';
|
|
20
17
|
import { MatrixCreate } from './core.js';
|
|
@@ -41,18 +38,19 @@ const DEGREES_PER_HALF_REVOLUTION = 180;
|
|
|
41
38
|
* ```
|
|
42
39
|
*
|
|
43
40
|
* @param radians - Rotation angle in radians (positive = counterclockwise)
|
|
44
|
-
* @returns {
|
|
41
|
+
* @returns {TMatrix3} A 3x3 rotation matrix for 2D transformations
|
|
45
42
|
*
|
|
46
43
|
* @throws {Error} If radians is not a finite number
|
|
47
44
|
*
|
|
48
45
|
* @example
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
46
|
+
* ```typescript
|
|
47
|
+
* ```typescript
|
|
48
|
+
* // 90-degree counterclockwise rotation
|
|
49
|
+
* const matrix = MatrixRotation2D(Math.PI / 2);
|
|
50
|
+
* // 45-degree clockwise rotation
|
|
51
|
+
* const clockwise = MatrixRotation2D(-Math.PI / 4);
|
|
52
|
+
* ```
|
|
53
|
+
* ```
|
|
56
54
|
*/
|
|
57
55
|
export function MatrixRotation2D(radians) {
|
|
58
56
|
AssertNumber(radians, { finite: true }, { message: 'Rotation angle must be a number' });
|
|
@@ -83,15 +81,17 @@ export function MatrixRotation2D(radians) {
|
|
|
83
81
|
* ```
|
|
84
82
|
*
|
|
85
83
|
* @param radians - Roll angle in radians (positive = right-hand rule around X-axis)
|
|
86
|
-
* @returns {
|
|
84
|
+
* @returns {TMatrix4} A 4x4 roll rotation matrix
|
|
87
85
|
*
|
|
88
86
|
* @throws {Error} If radians is not a finite number
|
|
89
87
|
*
|
|
90
88
|
* @example
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
89
|
+
* ```typescript
|
|
90
|
+
* ```typescript
|
|
91
|
+
* // 45-degree roll (banking left in aviation)
|
|
92
|
+
* const rollMatrix = MatrixRotation3DRoll(Math.PI / 4);
|
|
93
|
+
* ```
|
|
94
|
+
* ```
|
|
95
95
|
*/
|
|
96
96
|
export function MatrixRotation3DRoll(radians) {
|
|
97
97
|
AssertNumber(radians, { finite: true }, { message: 'Rotation angle must be a number' });
|
|
@@ -120,15 +120,17 @@ export function MatrixRotation3DRoll(radians) {
|
|
|
120
120
|
* ```
|
|
121
121
|
*
|
|
122
122
|
* @param radians - Pitch angle in radians (positive = nose up in aviation)
|
|
123
|
-
* @returns {
|
|
123
|
+
* @returns {TMatrix4} A 4x4 pitch rotation matrix
|
|
124
124
|
*
|
|
125
125
|
* @throws {Error} If radians is not a finite number
|
|
126
126
|
*
|
|
127
127
|
* @example
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
128
|
+
* ```typescript
|
|
129
|
+
* ```typescript
|
|
130
|
+
* // 30-degree pitch up
|
|
131
|
+
* const pitchMatrix = MatrixRotation3DPitch(Math.PI / 6);
|
|
132
|
+
* ```
|
|
133
|
+
* ```
|
|
132
134
|
*/
|
|
133
135
|
export function MatrixRotation3DPitch(radians) {
|
|
134
136
|
AssertNumber(radians, { finite: true }, { message: 'Rotation angle must be a number' });
|
|
@@ -157,15 +159,17 @@ export function MatrixRotation3DPitch(radians) {
|
|
|
157
159
|
* ```
|
|
158
160
|
*
|
|
159
161
|
* @param radians - Yaw angle in radians (positive = turn left in aviation)
|
|
160
|
-
* @returns {
|
|
162
|
+
* @returns {TMatrix4} A 4x4 yaw rotation matrix
|
|
161
163
|
*
|
|
162
164
|
* @throws {Error} If radians is not a finite number
|
|
163
165
|
*
|
|
164
166
|
* @example
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
167
|
+
* ```typescript
|
|
168
|
+
* ```typescript
|
|
169
|
+
* // 60-degree yaw left
|
|
170
|
+
* const yawMatrix = MatrixRotation3DYaw(Math.PI / 3);
|
|
171
|
+
* ```
|
|
172
|
+
* ```
|
|
169
173
|
*/
|
|
170
174
|
export function MatrixRotation3DYaw(radians) {
|
|
171
175
|
AssertNumber(radians, { finite: true }, { message: 'Rotation angle must be a number' });
|
|
@@ -289,19 +293,20 @@ export function MatrixScale3D(scaleOrX, y, z) {
|
|
|
289
293
|
* ```
|
|
290
294
|
*
|
|
291
295
|
* @param v - Translation vector [x, y] containing offset distances
|
|
292
|
-
* @returns {
|
|
296
|
+
* @returns {TMatrix3} A 3x3 translation transformation matrix
|
|
293
297
|
*
|
|
294
298
|
* @throws {Error} If the input is not a valid 2D vector
|
|
295
299
|
*
|
|
296
300
|
* @example
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
301
|
+
* ```typescript
|
|
302
|
+
* ```typescript
|
|
303
|
+
* // Move 10 units right, 5 units up
|
|
304
|
+
* const translation = MatrixTranslation2D(10, 5);
|
|
305
|
+
* // Using vector input
|
|
306
|
+
* const offset: TVector2 = [10, 5];
|
|
307
|
+
* const translation2 = MatrixTranslation2D(...offset);
|
|
308
|
+
* ```
|
|
309
|
+
* ```
|
|
305
310
|
*/
|
|
306
311
|
export function MatrixTranslation2D(...v) {
|
|
307
312
|
// Called with vector parameter using spread syntax
|
|
@@ -366,19 +371,20 @@ export function MatrixTranslation3D(translationOrX, y, z) {
|
|
|
366
371
|
* @throws {Error} If inputs are not valid vector/matrix types
|
|
367
372
|
*
|
|
368
373
|
* @example
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
374
|
+
* ```typescript
|
|
375
|
+
* ```typescript
|
|
376
|
+
* // Rotate a point 90 degrees counterclockwise
|
|
377
|
+
* const rotationMatrix = MatrixRotation2D(Math.PI / 2);
|
|
378
|
+
* const point: TVector2 = [1, 0];
|
|
379
|
+
* const rotatedPoint = MatrixTransform2D(point, rotationMatrix);
|
|
380
|
+
* // Result: approximately [0, 1]
|
|
381
|
+
* // Chain multiple transformations
|
|
382
|
+
* const scale = MatrixScale2D(2, 2);
|
|
383
|
+
* const translate = MatrixTranslation2D(5, 3);
|
|
384
|
+
* const combined = MatrixMultiply(translate, scale);
|
|
385
|
+
* const transformedPoint = MatrixTransform2D(point, combined);
|
|
386
|
+
* ```
|
|
387
|
+
* ```
|
|
382
388
|
*/
|
|
383
389
|
export function MatrixTransform2D(vector, matrix) {
|
|
384
390
|
AssertVector2(vector);
|
|
@@ -407,11 +413,13 @@ export function MatrixTransform2D(vector, matrix) {
|
|
|
407
413
|
* @throws {Error} If the w component is near zero (degenerate transformation).
|
|
408
414
|
*
|
|
409
415
|
* @example
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
416
|
+
* ```typescript
|
|
417
|
+
* ```typescript
|
|
418
|
+
* const rotationMatrix = MatrixRotation3DYaw(Math.PI / 4);
|
|
419
|
+
* const point: TVector3 = [1, 0, 0];
|
|
420
|
+
* const rotatedPoint = MatrixTransform3D(point, rotationMatrix);
|
|
421
|
+
* ```
|
|
422
|
+
* ```
|
|
415
423
|
*/
|
|
416
424
|
export function MatrixTransform3D(vector, transform) {
|
|
417
425
|
AssertMatrix4(transform);
|
|
@@ -440,11 +448,13 @@ export function MatrixTransform3D(vector, transform) {
|
|
|
440
448
|
* @returns {TVector3} The transformed direction vector.
|
|
441
449
|
*
|
|
442
450
|
* @example
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
451
|
+
* ```typescript
|
|
452
|
+
* ```typescript
|
|
453
|
+
* const rotationMatrix = MatrixRotation3DYaw(Math.PI / 4);
|
|
454
|
+
* const normal: TVector3 = [0, 0, 1];
|
|
455
|
+
* const rotatedNormal = MatrixDirection3D(normal, rotationMatrix);
|
|
456
|
+
* ```
|
|
457
|
+
* ```
|
|
448
458
|
*/
|
|
449
459
|
export function MatrixDirection3D(direction, matrix) {
|
|
450
460
|
AssertMatrix3(matrix);
|
|
@@ -463,16 +473,18 @@ export function MatrixDirection3D(direction, matrix) {
|
|
|
463
473
|
* @param eye - Camera position in world coordinates.
|
|
464
474
|
* @param target - Point the camera is looking at.
|
|
465
475
|
* @param up - Up direction vector (usually [0, 1, 0]).
|
|
466
|
-
* @returns {
|
|
476
|
+
* @returns {TMatrix4} A 4x4 view transformation matrix.
|
|
467
477
|
*
|
|
468
478
|
* @example
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
479
|
+
* ```typescript
|
|
480
|
+
* ```typescript
|
|
481
|
+
* const viewMatrix = MatrixView(
|
|
482
|
+
* [10, 5, 10], // Camera position
|
|
483
|
+
* [0, 0, 0], // Looking at origin
|
|
484
|
+
* [0, 1, 0] // Y-axis is up
|
|
485
|
+
* );
|
|
486
|
+
* ```
|
|
487
|
+
* ```
|
|
476
488
|
*/
|
|
477
489
|
export function MatrixView(eye, target, up) {
|
|
478
490
|
AssertVector3(eye);
|
|
@@ -510,19 +522,21 @@ export function MatrixView(eye, target, up) {
|
|
|
510
522
|
* @param aspect - Aspect ratio of the viewport (width/height).
|
|
511
523
|
* @param near - Distance to near clipping plane (must be positive).
|
|
512
524
|
* @param far - Distance to far clipping plane (must be > near).
|
|
513
|
-
* @returns {
|
|
525
|
+
* @returns {TMatrix4} A 4x4 perspective projection matrix.
|
|
514
526
|
*
|
|
515
527
|
* @throws {Error} If parameters are invalid.
|
|
516
528
|
*
|
|
517
529
|
* @example
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
530
|
+
* ```typescript
|
|
531
|
+
* ```typescript
|
|
532
|
+
* const perspectiveMatrix = MatrixPerspective(
|
|
533
|
+
* Math.PI / 4, // 45-degree field of view
|
|
534
|
+
* 16 / 9, // Widescreen aspect ratio
|
|
535
|
+
* 0.1, // Near plane
|
|
536
|
+
* 1000 // Far plane
|
|
537
|
+
* );
|
|
538
|
+
* ```
|
|
539
|
+
* ```
|
|
526
540
|
*/
|
|
527
541
|
export function MatrixPerspective(fovY, aspect, near, far) {
|
|
528
542
|
AssertNumber(near, { gt: 0 }, { message: 'Near clipping plane must be greater than 0' });
|
|
@@ -554,18 +568,20 @@ export function MatrixPerspective(fovY, aspect, near, far) {
|
|
|
554
568
|
* @param top - Top boundary of the orthographic volume.
|
|
555
569
|
* @param near - Near clipping plane distance.
|
|
556
570
|
* @param far - Far clipping plane distance.
|
|
557
|
-
* @returns {
|
|
571
|
+
* @returns {TMatrix4} A 4x4 orthographic projection matrix.
|
|
558
572
|
*
|
|
559
573
|
* @throws {Error} If any opposing boundaries are equal.
|
|
560
574
|
*
|
|
561
575
|
* @example
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
576
|
+
* ```typescript
|
|
577
|
+
* ```typescript
|
|
578
|
+
* const orthoMatrix = MatrixOrthographic(
|
|
579
|
+
* -10, 10, // Left/Right: 20 units wide
|
|
580
|
+
* -7.5, 7.5, // Bottom/Top: 15 units tall
|
|
581
|
+
* -100, 100 // Near/Far: 200 units deep
|
|
582
|
+
* );
|
|
583
|
+
* ```
|
|
584
|
+
* ```
|
|
569
585
|
*/
|
|
570
586
|
export function MatrixOrthographic(left, right, bottom, top, near, far) {
|
|
571
587
|
AssertNotEquals(left, right, { message: 'Left and right bounds must not be equal' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformations.js","sourceRoot":"","sources":["../../src/matrices/transformations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transformations.js","sourceRoot":"","sources":["../../src/matrices/transformations.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* const matrix: IMatrix = [[1, 2, 3], [4, 5, 6]]; // 2×3 matrix
|
|
11
11
|
* const square: IMatrix = [[1, 2], [3, 4]]; // 2×2 square matrix
|
|
12
12
|
*/
|
|
13
|
-
export type
|
|
13
|
+
export type TMatrix = number[][];
|
|
14
14
|
/**
|
|
15
15
|
* 1×1 matrix type for scalar operations in matrix form.
|
|
16
16
|
* Useful for maintaining type consistency in matrix operations.
|
|
@@ -18,7 +18,7 @@ export type IMatrix = number[][];
|
|
|
18
18
|
* @example
|
|
19
19
|
* const scalar: IMatrix1 = [[5]]; // Single value in matrix format
|
|
20
20
|
*/
|
|
21
|
-
export type
|
|
21
|
+
export type TMatrix1 = [[number]];
|
|
22
22
|
/**
|
|
23
23
|
* 2×2 matrix type commonly used for 2D transformations.
|
|
24
24
|
* Frequently used in computer graphics and 2D geometry operations.
|
|
@@ -27,7 +27,7 @@ export type IMatrix1 = [[number]];
|
|
|
27
27
|
* const rotation2D: IMatrix2 = [[0, -1], [1, 0]]; // 90° rotation matrix
|
|
28
28
|
* const scale2D: IMatrix2 = [[2, 0], [0, 3]]; // Scale transformation
|
|
29
29
|
*/
|
|
30
|
-
export type
|
|
30
|
+
export type TMatrix2 = [
|
|
31
31
|
[
|
|
32
32
|
number,
|
|
33
33
|
number
|
|
@@ -42,10 +42,10 @@ export type IMatrix2 = [
|
|
|
42
42
|
* or 3D rotations. Standard size for homogeneous 2D coordinates.
|
|
43
43
|
*
|
|
44
44
|
* @example
|
|
45
|
-
* const transform2D:
|
|
46
|
-
* const rotation3D:
|
|
45
|
+
* const transform2D: TMatrix3|TMatrix4 = [[1, 0, 5], [0, 1, 10], [0, 0, 1]]; // Translation
|
|
46
|
+
* const rotation3D: TMatrix3|TMatrix4 = [[1, 0, 0], [0, 0, -1], [0, 1, 0]]; // X-axis rotation
|
|
47
47
|
*/
|
|
48
|
-
export type
|
|
48
|
+
export type TMatrix3 = [
|
|
49
49
|
[
|
|
50
50
|
number,
|
|
51
51
|
number,
|
|
@@ -67,14 +67,14 @@ export type IMatrix3 = [
|
|
|
67
67
|
* Standard size for homogeneous 3D coordinates and transformation pipelines.
|
|
68
68
|
*
|
|
69
69
|
* @example
|
|
70
|
-
* const transform3D:
|
|
70
|
+
* const transform3D: TMatrix3|TMatrix4 = [
|
|
71
71
|
* [1, 0, 0, 5], // Translation in X
|
|
72
72
|
* [0, 1, 0, 10], // Translation in Y
|
|
73
73
|
* [0, 0, 1, 15], // Translation in Z
|
|
74
74
|
* [0, 0, 0, 1] // Homogeneous coordinate
|
|
75
75
|
* ];
|
|
76
76
|
*/
|
|
77
|
-
export type
|
|
77
|
+
export type TMatrix4 = [
|
|
78
78
|
[
|
|
79
79
|
number,
|
|
80
80
|
number,
|
|
@@ -119,16 +119,16 @@ export interface IMatrixOperationOptions {
|
|
|
119
119
|
* // Can handle any matrix size
|
|
120
120
|
* }
|
|
121
121
|
*/
|
|
122
|
-
export type
|
|
122
|
+
export type TMatrixAll = TMatrix1 | TMatrix2 | TMatrix3 | TMatrix4 | TMatrix;
|
|
123
123
|
/**
|
|
124
124
|
* Conditional type that preserves the specific matrix type through operations.
|
|
125
125
|
* Ensures type safety by returning the same specific matrix type as the input.
|
|
126
126
|
*
|
|
127
|
-
* @template T - The input matrix type extending
|
|
127
|
+
* @template T - The input matrix type extending TMatrix
|
|
128
128
|
* @example
|
|
129
|
-
* function operation<T extends
|
|
129
|
+
* function operation<T extends TMatrix>(matrix: T): TMatrixResult<T> {
|
|
130
130
|
* // Returns same specific type as input
|
|
131
131
|
* }
|
|
132
132
|
*/
|
|
133
|
-
export type TMatrixResult<T extends
|
|
133
|
+
export type TMatrixResult<T extends TMatrix> = T extends TMatrix1 ? TMatrix1 : T extends TMatrix2 ? TMatrix2 : T extends TMatrix3 ? TMatrix3 : T extends TMatrix4 ? TMatrix4 : TMatrix;
|
|
134
134
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/matrices/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,MAAM,MAAM,OAAO,GAAG,MAAM,EAAE,EAAE,CAAC;AAEjC;;;;;;GAMG;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAElC;;;;;;;GAOG;AAEH,MAAM,MAAM,QAAQ,GAAG;IACtB;QAAC,MAAM;QAAE,MAAM;KAAC;IAChB;QAAC,MAAM;QAAE,MAAM;KAAC;CAChB,CAAC;AAEF;;;;;;;GAOG;AAEH,MAAM,MAAM,QAAQ,GAAG;IACtB;QAAC,MAAM;QAAE,MAAM;QAAE,MAAM;KAAC;IACxB;QAAC,MAAM;QAAE,MAAM;QAAE,MAAM;KAAC;IACxB;QAAC,MAAM;QAAE,MAAM;QAAE,MAAM;KAAC;CACxB,CAAC;AAEF;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,QAAQ,GAAG;IACtB;QAAC,MAAM;QAAE,MAAM;QAAE,MAAM;QAAE,MAAM;KAAC;IAChC;QAAC,MAAM;QAAE,MAAM;QAAE,MAAM;QAAE,MAAM;KAAC;IAChC;QAAC,MAAM;QAAE,MAAM;QAAE,MAAM;QAAE,MAAM;KAAC;IAChC;QAAC,MAAM;QAAE,MAAM;QAAE,MAAM;QAAE,MAAM;KAAC;CAChC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACvC,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/matrices/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,MAAM,MAAM,OAAO,GAAG,MAAM,EAAE,EAAE,CAAC;AAEjC;;;;;;GAMG;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAElC;;;;;;;GAOG;AAEH,MAAM,MAAM,QAAQ,GAAG;IACtB;QAAC,MAAM;QAAE,MAAM;KAAC;IAChB;QAAC,MAAM;QAAE,MAAM;KAAC;CAChB,CAAC;AAEF;;;;;;;GAOG;AAEH,MAAM,MAAM,QAAQ,GAAG;IACtB;QAAC,MAAM;QAAE,MAAM;QAAE,MAAM;KAAC;IACxB;QAAC,MAAM;QAAE,MAAM;QAAE,MAAM;KAAC;IACxB;QAAC,MAAM;QAAE,MAAM;QAAE,MAAM;KAAC;CACxB,CAAC;AAEF;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,QAAQ,GAAG;IACtB;QAAC,MAAM;QAAE,MAAM;QAAE,MAAM;QAAE,MAAM;KAAC;IAChC;QAAC,MAAM;QAAE,MAAM;QAAE,MAAM;QAAE,MAAM;KAAC;IAChC;QAAC,MAAM;QAAE,MAAM;QAAE,MAAM;QAAE,MAAM;KAAC;IAChC;QAAC,MAAM;QAAE,MAAM;QAAE,MAAM;QAAE,MAAM;KAAC;CAChC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACvC,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE7E;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,OAAO,IAAI,CAAC,SAAS,QAAQ,GAAG,QAAQ,GAAG,CAAC,SAAS,QAAQ,GAAG,QAAQ,GAAG,CAAC,SAAS,QAAQ,GAAG,QAAQ,GAAG,CAAC,SAAS,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Namespace re-exports for quaternion utilities.
|
|
3
|
+
* Provides grouped access to quaternion operations through namespace aliases.
|
|
4
|
+
*/
|
|
5
|
+
export * as Types from './types.js';
|
|
6
|
+
export * as Core from './core.js';
|
|
7
|
+
export * as Asserts from './asserts.js';
|
|
8
|
+
export * as Conversions from './conversions.js';
|
|
9
|
+
export * as Interpolation from './interpolation.js';
|
|
10
|
+
export * as Predefined from './predefined.js';
|
|
11
|
+
//# sourceMappingURL=_exports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_exports.d.ts","sourceRoot":"","sources":["../../src/quaternions/_exports.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Namespace re-exports for quaternion utilities.
|
|
3
|
+
* Provides grouped access to quaternion operations through namespace aliases.
|
|
4
|
+
*/
|
|
5
|
+
export * as Types from './types.js';
|
|
6
|
+
export * as Core from './core.js';
|
|
7
|
+
export * as Asserts from './asserts.js';
|
|
8
|
+
export * as Conversions from './conversions.js';
|
|
9
|
+
export * as Interpolation from './interpolation.js';
|
|
10
|
+
export * as Predefined from './predefined.js';
|
|
11
|
+
//# sourceMappingURL=_exports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_exports.js","sourceRoot":"","sources":["../../src/quaternions/_exports.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC"}
|
|
@@ -9,7 +9,17 @@ import { TQuaternion, TEulerAngles, TAxisAngle, TRotationMatrix } from './types.
|
|
|
9
9
|
* Extends the base VectorError to maintain consistency with vector operations.
|
|
10
10
|
*/
|
|
11
11
|
export declare class QuaternionError extends VectorError {
|
|
12
|
-
|
|
12
|
+
readonly code: string;
|
|
13
|
+
/**
|
|
14
|
+
* Creates a new QuaternionError instance.
|
|
15
|
+
*
|
|
16
|
+
* @param message - Error message describing the validation failure
|
|
17
|
+
* @param options - Optional error context
|
|
18
|
+
* @param options.cause - Original error that caused this error
|
|
19
|
+
*/
|
|
20
|
+
constructor(message: string, options?: {
|
|
21
|
+
cause?: unknown;
|
|
22
|
+
});
|
|
13
23
|
}
|
|
14
24
|
/**
|
|
15
25
|
* Validates that a value is a proper quaternion.
|
|
@@ -20,9 +30,11 @@ export declare class QuaternionError extends VectorError {
|
|
|
20
30
|
* @throws {QuaternionError} If the quaternion is invalid
|
|
21
31
|
*
|
|
22
32
|
* @example
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
33
|
+
* ```typescript
|
|
34
|
+
* AssertQuaternion([0, 0, 0, 1]); // Valid - passes silently
|
|
35
|
+
* AssertQuaternion([1, 2, 3]); // Throws QuaternionError - wrong length
|
|
36
|
+
* AssertQuaternion([1, 2, 3, NaN]); // Throws QuaternionError - contains NaN
|
|
37
|
+
* ```
|
|
26
38
|
*/
|
|
27
39
|
export declare function AssertQuaternion(quaternion: unknown, options?: Record<string, unknown>): asserts quaternion is TQuaternion;
|
|
28
40
|
/**
|
|
@@ -34,8 +46,10 @@ export declare function AssertQuaternion(quaternion: unknown, options?: Record<s
|
|
|
34
46
|
* @throws {QuaternionError} If the quaternion is not normalized
|
|
35
47
|
*
|
|
36
48
|
* @example
|
|
37
|
-
|
|
38
|
-
|
|
49
|
+
* ```typescript
|
|
50
|
+
* AssertNormalizedQuaternion([0, 0, 0, 1]); // Valid unit quaternion
|
|
51
|
+
* AssertNormalizedQuaternion([1, 1, 1, 1]); // Throws - not normalized
|
|
52
|
+
* ```
|
|
39
53
|
*/
|
|
40
54
|
export declare function AssertNormalizedQuaternion(quaternion: TQuaternion, tolerance?: number): void;
|
|
41
55
|
/**
|
|
@@ -58,7 +72,7 @@ export declare function AssertEulerAngles(euler: unknown, options?: Record<strin
|
|
|
58
72
|
export declare function AssertAxisAngle(axisAngle: unknown, options?: Record<string, unknown>): asserts axisAngle is TAxisAngle;
|
|
59
73
|
/**
|
|
60
74
|
* Validates that a value is a proper rotation matrix.
|
|
61
|
-
* Rotation matrix must be a 3x3 matrix (
|
|
75
|
+
* Rotation matrix must be a 3x3 matrix (TMatrix3).
|
|
62
76
|
*
|
|
63
77
|
* @param matrix - The value to validate as a rotation matrix
|
|
64
78
|
* @param options - Validation options
|
|
@@ -74,4 +88,98 @@ export declare function AssertRotationMatrix(matrix: unknown, options?: Record<s
|
|
|
74
88
|
* @throws {QuaternionError} If any quaternion is invalid
|
|
75
89
|
*/
|
|
76
90
|
export declare function AssertQuaternions(quaternions: unknown[], options?: Record<string, unknown>): asserts quaternions is TQuaternion[];
|
|
91
|
+
/**
|
|
92
|
+
* Validates that an unknown value is a valid quaternion without throwing an error.
|
|
93
|
+
*
|
|
94
|
+
* This function performs the same validation as AssertQuaternion but returns
|
|
95
|
+
* a boolean instead of throwing an exception, making it suitable for
|
|
96
|
+
* conditional logic where exceptions are not desired.
|
|
97
|
+
*
|
|
98
|
+
* @param quaternion - The value to validate as a quaternion
|
|
99
|
+
* @param options - Validation options
|
|
100
|
+
* @returns true if the quaternion is valid, false otherwise
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```typescript
|
|
104
|
+
* if (ValidateQuaternion(someValue)) {
|
|
105
|
+
* // Process the valid quaternion
|
|
106
|
+
* }
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
export declare function ValidateQuaternion(quaternion: unknown, options?: Record<string, unknown>): quaternion is TQuaternion;
|
|
110
|
+
/**
|
|
111
|
+
* Validates that a quaternion is normalized (magnitude = 1) without throwing an error.
|
|
112
|
+
*
|
|
113
|
+
* @param quaternion - The quaternion to validate as normalized
|
|
114
|
+
* @param tolerance - Maximum allowed deviation from unit magnitude (default: 1e-6)
|
|
115
|
+
* @returns true if the quaternion is normalized, false otherwise
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```typescript
|
|
119
|
+
* if (ValidateNormalizedQuaternion([1, 0, 0, 0])) {
|
|
120
|
+
* // Process the normalized quaternion
|
|
121
|
+
* }
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
124
|
+
export declare function ValidateNormalizedQuaternion(quaternion: TQuaternion, tolerance?: number): boolean;
|
|
125
|
+
/**
|
|
126
|
+
* Validates that an unknown value is valid Euler angles without throwing an error.
|
|
127
|
+
*
|
|
128
|
+
* @param euler - The value to validate as Euler angles
|
|
129
|
+
* @param options - Validation options
|
|
130
|
+
* @returns true if the Euler angles are valid, false otherwise
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* ```typescript
|
|
134
|
+
* if (ValidateEulerAngles([0.5, 1.0, 1.5])) {
|
|
135
|
+
* // Process the valid Euler angles
|
|
136
|
+
* }
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
export declare function ValidateEulerAngles(euler: unknown, options?: Record<string, unknown>): euler is TEulerAngles;
|
|
140
|
+
/**
|
|
141
|
+
* Validates that an unknown value is a valid axis-angle representation without throwing an error.
|
|
142
|
+
*
|
|
143
|
+
* @param axisAngle - The value to validate as axis-angle
|
|
144
|
+
* @param options - Validation options
|
|
145
|
+
* @returns true if the axis-angle is valid, false otherwise
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* ```typescript
|
|
149
|
+
* if (ValidateAxisAngle({ axis: [0, 0, 1], angle: Math.PI / 2 })) {
|
|
150
|
+
* // Process the valid axis-angle
|
|
151
|
+
* }
|
|
152
|
+
* ```
|
|
153
|
+
*/
|
|
154
|
+
export declare function ValidateAxisAngle(axisAngle: unknown, options?: Record<string, unknown>): axisAngle is TAxisAngle;
|
|
155
|
+
/**
|
|
156
|
+
* Validates that an unknown value is a valid rotation matrix without throwing an error.
|
|
157
|
+
*
|
|
158
|
+
* @param matrix - The value to validate as a rotation matrix
|
|
159
|
+
* @param options - Validation options
|
|
160
|
+
* @returns true if the matrix is a valid rotation matrix, false otherwise
|
|
161
|
+
*
|
|
162
|
+
* @example
|
|
163
|
+
* ```typescript
|
|
164
|
+
* if (ValidateRotationMatrix(someValue)) {
|
|
165
|
+
* // Process the valid rotation matrix
|
|
166
|
+
* }
|
|
167
|
+
* ```
|
|
168
|
+
*/
|
|
169
|
+
export declare function ValidateRotationMatrix(matrix: unknown, options?: Record<string, unknown>): matrix is TRotationMatrix;
|
|
170
|
+
/**
|
|
171
|
+
* Validates that an unknown value is an array of valid quaternions without throwing an error.
|
|
172
|
+
*
|
|
173
|
+
* @param quaternions - The value to validate as an array of quaternions
|
|
174
|
+
* @param options - Validation options
|
|
175
|
+
* @returns true if all quaternions are valid, false otherwise
|
|
176
|
+
*
|
|
177
|
+
* @example
|
|
178
|
+
* ```typescript
|
|
179
|
+
* if (ValidateQuaternions([q1, q2, q3])) {
|
|
180
|
+
* // Process the valid quaternion array
|
|
181
|
+
* }
|
|
182
|
+
* ```
|
|
183
|
+
*/
|
|
184
|
+
export declare function ValidateQuaternions(quaternions: unknown[], options?: Record<string, unknown>): quaternions is TQuaternion[];
|
|
77
185
|
//# sourceMappingURL=asserts.d.ts.map
|