@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
|
@@ -10,31 +10,36 @@ import { MatrixSize } from './core.js';
|
|
|
10
10
|
* @class MatrixError
|
|
11
11
|
* @extends Error
|
|
12
12
|
* @example
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
13
|
+
* ```typescript
|
|
14
|
+
* ```typescript
|
|
15
|
+
* try {
|
|
16
|
+
* AssertMatrix(invalidMatrix);
|
|
17
|
+
* } catch (error) {
|
|
18
|
+
* if (error instanceof MatrixError) {
|
|
19
|
+
* console.log('Matrix validation failed:', error.message);
|
|
20
|
+
* }
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
* ```
|
|
22
24
|
*/
|
|
23
25
|
export class MatrixError extends Error {
|
|
26
|
+
code = 'MATRIX_ERROR';
|
|
24
27
|
/**
|
|
25
28
|
* Creates a new MatrixError instance.
|
|
26
29
|
*
|
|
27
|
-
* @param message -
|
|
30
|
+
* @param message - Error message describing the validation failure
|
|
31
|
+
* @param options - Optional error context
|
|
32
|
+
* @param options.cause - Original error that caused this error
|
|
28
33
|
*/
|
|
29
|
-
constructor(message) {
|
|
30
|
-
super(message);
|
|
34
|
+
constructor(message, options) {
|
|
35
|
+
super(message, options);
|
|
31
36
|
this.name = 'MatrixError';
|
|
32
37
|
// Maintains proper prototype chain for instanceof checks
|
|
33
38
|
Object.setPrototypeOf(this, new.target.prototype);
|
|
34
39
|
}
|
|
35
40
|
}
|
|
36
41
|
/**
|
|
37
|
-
* Validates that an unknown value is a valid matrix conforming to the
|
|
42
|
+
* Validates that an unknown value is a valid matrix conforming to the TMatrix interface.
|
|
38
43
|
*
|
|
39
44
|
* This function performs comprehensive validation of matrix structure including:
|
|
40
45
|
* - Type checking to ensure the value is a proper matrix
|
|
@@ -48,16 +53,16 @@ export class MatrixError extends Error {
|
|
|
48
53
|
* @throws {IAssertException} When the matrix doesn't meet the specified criteria
|
|
49
54
|
*
|
|
50
55
|
* @example
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
56
|
+
* ```typescript
|
|
57
|
+
* ```typescript
|
|
58
|
+
* // Validate a 3x3 square matrix
|
|
59
|
+
* AssertMatrix(someValue, { square: true, size: 3 });
|
|
60
|
+
* // Validate minimum dimensions
|
|
61
|
+
* AssertMatrix(someValue, { minRows: 2, minColumns: 3 });
|
|
62
|
+
* // Validate exact dimensions
|
|
63
|
+
* AssertMatrix(someValue, { rows: 4, columns: 5 });
|
|
64
|
+
* ```
|
|
65
|
+
* ```
|
|
61
66
|
*/
|
|
62
67
|
export function AssertMatrix(matrix, args = {}, exception = {}) {
|
|
63
68
|
// Initialize the exception with the default MatrixError class if not provided
|
|
@@ -150,21 +155,20 @@ export function AssertMatrix(matrix, args = {}, exception = {}) {
|
|
|
150
155
|
* which should be an array containing only numeric values.
|
|
151
156
|
*
|
|
152
157
|
* @param row - The value to validate as a matrix row
|
|
153
|
-
* @param exception - Custom exception details
|
|
154
|
-
* @
|
|
155
|
-
* @throws {IAssertException} When the row is not a valid array of numbers
|
|
158
|
+
* @param exception - Custom exception details (optionally includes `rowIndex` for richer messages)
|
|
159
|
+
* @throws {MatrixError} When the row is not a valid array of finite numbers
|
|
156
160
|
*
|
|
157
161
|
* @example
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
162
|
+
* ```typescript
|
|
163
|
+
* ```typescript
|
|
164
|
+
* // Validate a matrix row
|
|
165
|
+
* AssertMatrixRow([1, 2, 3, 4]);
|
|
166
|
+
* // Validate with row index in exception for better error messages
|
|
167
|
+
* AssertMatrixRow([1, 2, 3, 4], { rowIndex: 0 });
|
|
168
|
+
* // This would throw MatrixError
|
|
169
|
+
* AssertMatrixRow([1, '2', 3]); // Contains non-numeric value
|
|
170
|
+
* ```
|
|
171
|
+
* ```
|
|
168
172
|
*/
|
|
169
173
|
export function AssertMatrixRow(row, exception = {}) {
|
|
170
174
|
// Initialize the exception with the default MatrixError class if not provided
|
|
@@ -194,24 +198,22 @@ export function AssertMatrixRow(row, exception = {}) {
|
|
|
194
198
|
* which should be a finite number (not NaN, Infinity, or -Infinity).
|
|
195
199
|
*
|
|
196
200
|
* @param value - The value to validate as a matrix element
|
|
197
|
-
* @param exception - Custom exception details
|
|
198
|
-
* @
|
|
199
|
-
* @param columnIndex - Optional column index for more descriptive error messages
|
|
200
|
-
* @throws {IAssertException} When the value is not a finite number
|
|
201
|
+
* @param exception - Custom exception details (optionally includes `rowIndex` and `columnIndex` for richer messages)
|
|
202
|
+
* @throws {MatrixError} When the value is not a finite number
|
|
201
203
|
*
|
|
202
204
|
* @example
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
205
|
+
* ```typescript
|
|
206
|
+
* ```typescript
|
|
207
|
+
* // Validate a matrix element
|
|
208
|
+
* AssertMatrixValue(42);
|
|
209
|
+
* // Validate with position information for better error messages
|
|
210
|
+
* AssertMatrixValue(3.14, { rowIndex: 0, columnIndex: 1 });
|
|
211
|
+
* // These would throw MatrixError
|
|
212
|
+
* AssertMatrixValue(NaN); // Not a number
|
|
213
|
+
* AssertMatrixValue(Infinity); // Not a finite number
|
|
214
|
+
* AssertMatrixValue('5'); // Not a number type
|
|
215
|
+
* ```
|
|
216
|
+
* ```
|
|
215
217
|
*/
|
|
216
218
|
export function AssertMatrixValue(value, exception = {}) {
|
|
217
219
|
// Initialize the exception with the default MatrixError class if not provided
|
|
@@ -221,7 +223,14 @@ export function AssertMatrixValue(value, exception = {}) {
|
|
|
221
223
|
const position = exception.rowIndex !== undefined && exception.columnIndex !== undefined ? ` at row ${exception.rowIndex}, column ${exception.columnIndex}` : '';
|
|
222
224
|
SetExceptionMessage(exception, `Matrix value${position} must be a finite number`);
|
|
223
225
|
// Delegate to the general number assertion which handles finite number validation
|
|
224
|
-
|
|
226
|
+
// Wrap any thrown error as MatrixError to maintain consistent error handling
|
|
227
|
+
try {
|
|
228
|
+
AssertNumber(value, { finite: true }, exception);
|
|
229
|
+
}
|
|
230
|
+
catch {
|
|
231
|
+
// Re-throw as MatrixError to maintain API contract
|
|
232
|
+
throw new MatrixError(exception.message ?? 'Matrix value must be a finite number');
|
|
233
|
+
}
|
|
225
234
|
}
|
|
226
235
|
/**
|
|
227
236
|
* Validates compatibility between two matrices for mathematical operations.
|
|
@@ -237,13 +246,14 @@ export function AssertMatrixValue(value, exception = {}) {
|
|
|
237
246
|
* @throws {IAssertException} When the matrices are not compatible
|
|
238
247
|
*
|
|
239
248
|
* @example
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
249
|
+
* ```typescript
|
|
250
|
+
* ```typescript
|
|
251
|
+
* // Validate matrices for multiplication (A columns must equal B rows)
|
|
252
|
+
* AssertMatrices(matrixA, matrixB);
|
|
253
|
+
* // Allow transposed compatibility
|
|
254
|
+
* AssertMatrices(matrixA, matrixB, { transposition: true });
|
|
255
|
+
* ```
|
|
256
|
+
* ```
|
|
247
257
|
*/
|
|
248
258
|
export function AssertMatrices(a, b, args = {}, exception = {}) {
|
|
249
259
|
// Initialize the exception with the default MatrixError class if not provided
|
|
@@ -251,7 +261,7 @@ export function AssertMatrices(a, b, args = {}, exception = {}) {
|
|
|
251
261
|
// First validation: ensure both inputs are valid matrices
|
|
252
262
|
AssertMatrix(a, {}, exception);
|
|
253
263
|
AssertMatrix(b, {}, exception);
|
|
254
|
-
// Safe cast to
|
|
264
|
+
// Safe cast to TMatrix since we've validated both inputs
|
|
255
265
|
const matrixA = a;
|
|
256
266
|
const matrixB = b;
|
|
257
267
|
// Extract dimensions from both matrices for compatibility checking
|
|
@@ -295,13 +305,14 @@ export function AssertMatrices(a, b, args = {}, exception = {}) {
|
|
|
295
305
|
* @throws {IAssertException} When the matrix is not a valid 1x1 matrix
|
|
296
306
|
*
|
|
297
307
|
* @example
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
308
|
+
* ```typescript
|
|
309
|
+
* ```typescript
|
|
310
|
+
* // Validate a 1x1 matrix
|
|
311
|
+
* AssertMatrix1([[5]]);
|
|
312
|
+
* // This would throw an exception
|
|
313
|
+
* AssertMatrix1([[1, 2]]); // Too many columns
|
|
314
|
+
* ```
|
|
315
|
+
* ```
|
|
305
316
|
*/
|
|
306
317
|
export function AssertMatrix1(matrix, exception = {}) {
|
|
307
318
|
// Initialize the exception with the default MatrixError class if not provided
|
|
@@ -321,13 +332,14 @@ export function AssertMatrix1(matrix, exception = {}) {
|
|
|
321
332
|
* @throws {IAssertException} When the matrix is not a valid 2x2 matrix
|
|
322
333
|
*
|
|
323
334
|
* @example
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
335
|
+
* ```typescript
|
|
336
|
+
* ```typescript
|
|
337
|
+
* // Validate a 2x2 matrix
|
|
338
|
+
* AssertMatrix2([[1, 2], [3, 4]]);
|
|
339
|
+
* // This would throw an exception
|
|
340
|
+
* AssertMatrix2([[1, 2, 3], [4, 5, 6]]); // Too many columns
|
|
341
|
+
* ```
|
|
342
|
+
* ```
|
|
331
343
|
*/
|
|
332
344
|
export function AssertMatrix2(matrix, exception = {}) {
|
|
333
345
|
// Initialize the exception with the default MatrixError class if not provided
|
|
@@ -347,13 +359,14 @@ export function AssertMatrix2(matrix, exception = {}) {
|
|
|
347
359
|
* @throws {IAssertException} When the matrix is not a valid 3x3 matrix
|
|
348
360
|
*
|
|
349
361
|
* @example
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
362
|
+
* ```typescript
|
|
363
|
+
* ```typescript
|
|
364
|
+
* // Validate a 3x3 matrix
|
|
365
|
+
* AssertMatrix3([[1, 2, 3], [4, 5, 6], [7, 8, 9]]);
|
|
366
|
+
* // This would throw an exception
|
|
367
|
+
* AssertMatrix3([[1, 2], [3, 4]]); // Too few rows and columns
|
|
368
|
+
* ```
|
|
369
|
+
* ```
|
|
357
370
|
*/
|
|
358
371
|
export function AssertMatrix3(matrix, exception = {}) {
|
|
359
372
|
// Initialize the exception with the default MatrixError class if not provided
|
|
@@ -373,18 +386,19 @@ export function AssertMatrix3(matrix, exception = {}) {
|
|
|
373
386
|
* @throws {IAssertException} When the matrix is not a valid 4x4 matrix
|
|
374
387
|
*
|
|
375
388
|
* @example
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
389
|
+
* ```typescript
|
|
390
|
+
* ```typescript
|
|
391
|
+
* // Validate a 4x4 matrix
|
|
392
|
+
* AssertMatrix4([
|
|
393
|
+
* [1, 2, 3, 4],
|
|
394
|
+
* [5, 6, 7, 8],
|
|
395
|
+
* [9, 10, 11, 12],
|
|
396
|
+
* [13, 14, 15, 16]
|
|
397
|
+
* ]);
|
|
398
|
+
* // This would throw an exception
|
|
399
|
+
* AssertMatrix4([[1, 2], [3, 4]]); // Too few rows and columns
|
|
400
|
+
* ```
|
|
401
|
+
* ```
|
|
388
402
|
*/
|
|
389
403
|
export function AssertMatrix4(matrix, exception = {}) {
|
|
390
404
|
// Initialize the exception with the default MatrixError class if not provided
|
|
@@ -393,4 +407,187 @@ export function AssertMatrix4(matrix, exception = {}) {
|
|
|
393
407
|
// This ensures the matrix is exactly 4 rows by 4 columns
|
|
394
408
|
AssertMatrix(matrix, { square: true, size: 4 }, exception);
|
|
395
409
|
}
|
|
410
|
+
/**
|
|
411
|
+
* Validates that an unknown value is a valid matrix without throwing an error.
|
|
412
|
+
*
|
|
413
|
+
* This function performs the same validation as AssertMatrix but returns
|
|
414
|
+
* a boolean instead of throwing an exception, making it suitable for
|
|
415
|
+
* conditional logic where exceptions are not desired.
|
|
416
|
+
*
|
|
417
|
+
* @param matrix - The value to validate as a matrix
|
|
418
|
+
* @param args - Validation configuration options
|
|
419
|
+
* @returns true if the matrix is valid, false otherwise
|
|
420
|
+
*
|
|
421
|
+
* @example
|
|
422
|
+
* ```typescript
|
|
423
|
+
* if (ValidateMatrix(someValue, { square: true })) {
|
|
424
|
+
* // Process the valid square matrix
|
|
425
|
+
* }
|
|
426
|
+
* ```
|
|
427
|
+
*/
|
|
428
|
+
export function ValidateMatrix(matrix, args = {}) {
|
|
429
|
+
try {
|
|
430
|
+
AssertMatrix(matrix, args);
|
|
431
|
+
return true;
|
|
432
|
+
}
|
|
433
|
+
catch {
|
|
434
|
+
return false;
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
/**
|
|
438
|
+
* Validates that an unknown value is a valid 1×1 matrix without throwing an error.
|
|
439
|
+
*
|
|
440
|
+
* @param matrix - The value to validate as a 1×1 matrix
|
|
441
|
+
* @returns true if the matrix is valid, false otherwise
|
|
442
|
+
*
|
|
443
|
+
* @example
|
|
444
|
+
* ```typescript
|
|
445
|
+
* if (ValidateMatrix1(someValue)) {
|
|
446
|
+
* // Process the valid 1×1 matrix
|
|
447
|
+
* }
|
|
448
|
+
* ```
|
|
449
|
+
*/
|
|
450
|
+
export function ValidateMatrix1(matrix) {
|
|
451
|
+
try {
|
|
452
|
+
AssertMatrix1(matrix);
|
|
453
|
+
return true;
|
|
454
|
+
}
|
|
455
|
+
catch {
|
|
456
|
+
return false;
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
/**
|
|
460
|
+
* Validates that an unknown value is a valid 2×2 matrix without throwing an error.
|
|
461
|
+
*
|
|
462
|
+
* @param matrix - The value to validate as a 2×2 matrix
|
|
463
|
+
* @returns true if the matrix is valid, false otherwise
|
|
464
|
+
*
|
|
465
|
+
* @example
|
|
466
|
+
* ```typescript
|
|
467
|
+
* if (ValidateMatrix2(someValue)) {
|
|
468
|
+
* // Process the valid 2×2 matrix
|
|
469
|
+
* }
|
|
470
|
+
* ```
|
|
471
|
+
*/
|
|
472
|
+
export function ValidateMatrix2(matrix) {
|
|
473
|
+
try {
|
|
474
|
+
AssertMatrix2(matrix);
|
|
475
|
+
return true;
|
|
476
|
+
}
|
|
477
|
+
catch {
|
|
478
|
+
return false;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
/**
|
|
482
|
+
* Validates that an unknown value is a valid 3×3 matrix without throwing an error.
|
|
483
|
+
*
|
|
484
|
+
* @param matrix - The value to validate as a 3×3 matrix
|
|
485
|
+
* @returns true if the matrix is valid, false otherwise
|
|
486
|
+
*
|
|
487
|
+
* @example
|
|
488
|
+
* ```typescript
|
|
489
|
+
* if (ValidateMatrix3(someValue)) {
|
|
490
|
+
* // Process the valid 3×3 matrix
|
|
491
|
+
* }
|
|
492
|
+
* ```
|
|
493
|
+
*/
|
|
494
|
+
export function ValidateMatrix3(matrix) {
|
|
495
|
+
try {
|
|
496
|
+
AssertMatrix3(matrix);
|
|
497
|
+
return true;
|
|
498
|
+
}
|
|
499
|
+
catch {
|
|
500
|
+
return false;
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
/**
|
|
504
|
+
* Validates that an unknown value is a valid 4×4 matrix without throwing an error.
|
|
505
|
+
*
|
|
506
|
+
* @param matrix - The value to validate as a 4×4 matrix
|
|
507
|
+
* @returns true if the matrix is valid, false otherwise
|
|
508
|
+
*
|
|
509
|
+
* @example
|
|
510
|
+
* ```typescript
|
|
511
|
+
* if (ValidateMatrix4(someValue)) {
|
|
512
|
+
* // Process the valid 4×4 matrix
|
|
513
|
+
* }
|
|
514
|
+
* ```
|
|
515
|
+
*/
|
|
516
|
+
export function ValidateMatrix4(matrix) {
|
|
517
|
+
try {
|
|
518
|
+
AssertMatrix4(matrix);
|
|
519
|
+
return true;
|
|
520
|
+
}
|
|
521
|
+
catch {
|
|
522
|
+
return false;
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
/**
|
|
526
|
+
* Validates that an unknown value is a valid matrix row without throwing an error.
|
|
527
|
+
*
|
|
528
|
+
* @param row - The value to validate as a matrix row
|
|
529
|
+
* @returns true if the row is valid, false otherwise
|
|
530
|
+
*
|
|
531
|
+
* @example
|
|
532
|
+
* ```typescript
|
|
533
|
+
* if (ValidateMatrixRow([1, 2, 3])) {
|
|
534
|
+
* // Process the valid row
|
|
535
|
+
* }
|
|
536
|
+
* ```
|
|
537
|
+
*/
|
|
538
|
+
export function ValidateMatrixRow(row) {
|
|
539
|
+
try {
|
|
540
|
+
AssertMatrixRow(row);
|
|
541
|
+
return true;
|
|
542
|
+
}
|
|
543
|
+
catch {
|
|
544
|
+
return false;
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
/**
|
|
548
|
+
* Validates that an unknown value is a valid matrix value (finite number) without throwing an error.
|
|
549
|
+
*
|
|
550
|
+
* @param value - The value to validate as a matrix element
|
|
551
|
+
* @returns true if the value is valid, false otherwise
|
|
552
|
+
*
|
|
553
|
+
* @example
|
|
554
|
+
* ```typescript
|
|
555
|
+
* if (ValidateMatrixValue(someValue)) {
|
|
556
|
+
* // Process the valid numeric value
|
|
557
|
+
* }
|
|
558
|
+
* ```
|
|
559
|
+
*/
|
|
560
|
+
export function ValidateMatrixValue(value) {
|
|
561
|
+
try {
|
|
562
|
+
AssertMatrixValue(value);
|
|
563
|
+
return true;
|
|
564
|
+
}
|
|
565
|
+
catch {
|
|
566
|
+
return false;
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
/**
|
|
570
|
+
* Validates that two unknown values are compatible matrices without throwing an error.
|
|
571
|
+
*
|
|
572
|
+
* @param a - The first matrix to validate
|
|
573
|
+
* @param b - The second matrix to validate
|
|
574
|
+
* @param args - Validation configuration options
|
|
575
|
+
* @returns true if both matrices are valid and compatible, false otherwise
|
|
576
|
+
*
|
|
577
|
+
* @example
|
|
578
|
+
* ```typescript
|
|
579
|
+
* if (ValidateMatrices(matrixA, matrixB, { transposition: true })) {
|
|
580
|
+
* // Process the valid and compatible matrices
|
|
581
|
+
* }
|
|
582
|
+
* ```
|
|
583
|
+
*/
|
|
584
|
+
export function ValidateMatrices(a, b, args = {}) {
|
|
585
|
+
try {
|
|
586
|
+
AssertMatrices(a, b, args);
|
|
587
|
+
return true;
|
|
588
|
+
}
|
|
589
|
+
catch {
|
|
590
|
+
return false;
|
|
591
|
+
}
|
|
592
|
+
}
|
|
396
593
|
//# sourceMappingURL=asserts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asserts.js","sourceRoot":"","sources":["../../src/matrices/asserts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAoB,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEnJ,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AA2FvC
|
|
1
|
+
{"version":3,"file":"asserts.js","sourceRoot":"","sources":["../../src/matrices/asserts.ts"],"names":[],"mappings":"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"}
|