@math.gl/core 4.1.0 → 4.2.0-alpha.5

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 (56) hide show
  1. package/LICENSE +51 -0
  2. package/dist/classes/euler.js +5 -5
  3. package/dist/gl-matrix/common.d.ts.map +1 -1
  4. package/dist/gl-matrix/mat3.d.ts +3 -3
  5. package/dist/gl-matrix/mat3.d.ts.map +1 -1
  6. package/dist/gl-matrix/mat3.js +1 -1
  7. package/dist/gl-matrix/mat3.js.map +1 -1
  8. package/dist/gl-matrix/mat4.d.ts +3 -3
  9. package/dist/gl-matrix/mat4.d.ts.map +1 -1
  10. package/dist/gl-matrix/mat4.js +1 -1
  11. package/dist/gl-matrix/mat4.js.map +1 -1
  12. package/dist/gl-matrix/quat.d.ts +1 -1
  13. package/dist/gl-matrix/quat.d.ts.map +1 -1
  14. package/dist/gl-matrix/quat.js +1 -1
  15. package/dist/gl-matrix/quat.js.map +1 -1
  16. package/dist/gl-matrix/vec2.js +1 -1
  17. package/dist/gl-matrix/vec2.js.map +1 -1
  18. package/dist/gl-matrix/vec3.d.ts +3 -3
  19. package/dist/gl-matrix/vec3.d.ts.map +1 -1
  20. package/dist/gl-matrix/vec3.js +1 -1
  21. package/dist/gl-matrix/vec3.js.map +1 -1
  22. package/dist/gl-matrix/vec4.d.ts +3 -3
  23. package/dist/gl-matrix/vec4.d.ts.map +1 -1
  24. package/dist/gl-matrix/vec4.js +1 -1
  25. package/dist/gl-matrix/vec4.js.map +1 -1
  26. package/dist/gl-matrix/wip/mat2.d.ts.map +1 -1
  27. package/dist/gl-matrix/wip/mat2d.d.ts.map +1 -1
  28. package/dist/index.cjs +201 -162
  29. package/dist/index.cjs.map +3 -4
  30. package/dist/index.d.ts +4 -1
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +4 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/lib/common.d.ts +16 -0
  35. package/dist/lib/common.d.ts.map +1 -1
  36. package/dist/lib/common.js +68 -9
  37. package/dist/lib/common.js.map +1 -1
  38. package/dist/lib/math-utils.d.ts +1 -0
  39. package/dist/lib/math-utils.d.ts.map +1 -1
  40. package/dist/lib/math-utils.js +1 -0
  41. package/dist/lib/math-utils.js.map +1 -1
  42. package/dist/lib/validators.js +1 -1
  43. package/dist/lib/validators.js.map +1 -1
  44. package/package.json +3 -3
  45. package/src/classes/euler.ts +5 -5
  46. package/src/gl-matrix/mat3.ts +1 -1
  47. package/src/gl-matrix/mat4.ts +1 -1
  48. package/src/gl-matrix/quat.ts +1 -1
  49. package/src/gl-matrix/vec2.ts +1 -1
  50. package/src/gl-matrix/vec3.ts +1 -1
  51. package/src/gl-matrix/vec4.ts +1 -1
  52. package/src/index.ts +5 -0
  53. package/src/lib/common.ts +76 -9
  54. package/src/lib/gl-matrix.d.ts +10 -0
  55. package/src/lib/math-utils.ts +1 -0
  56. package/src/lib/validators.ts +1 -1
package/dist/index.d.ts CHANGED
@@ -1,5 +1,8 @@
1
1
  export type { TypedArray, TypedArrayConstructor, NumericArray, NumberArray, NumberArray2, NumberArray3, NumberArray4, NumberArray6, NumberArray8, NumberArray9, NumberArray12, NumberArray16 } from '@math.gl/types';
2
2
  export type { isTypedArray, isNumberArray, isNumericArray } from '@math.gl/types';
3
+ export { MathArray as _MathArray } from "./classes/base/math-array.js";
4
+ export { Matrix as _Matrix } from "./classes/base/matrix.js";
5
+ export { Vector as _Vector } from "./classes/base/vector.js";
3
6
  export { Vector2 } from "./classes/vector2.js";
4
7
  export { Vector3 } from "./classes/vector3.js";
5
8
  export { Vector4 } from "./classes/vector4.js";
@@ -16,7 +19,7 @@ export { Pose } from "./classes/pose.js";
16
19
  export { Euler } from "./classes/euler.js";
17
20
  export * as _MathUtils from "./lib/math-utils.js";
18
21
  export { assert } from "./lib/assert.js";
19
- export { config, configure, formatValue, isArray, clone, equals, exactEquals, toRadians, toDegrees, radians, degrees, sin, cos, tan, asin, acos, atan, clamp, lerp, withEpsilon } from "./lib/common.js";
22
+ export { config, configure, safeMod, normalizeAngle, formatValue, isArray, clone, equals, exactEquals, toRadians, toDegrees, radians, degrees, sin, cos, tan, asin, acos, atan, clamp, lerp, withEpsilon } from "./lib/common.js";
20
23
  export { SphericalCoordinates as _SphericalCoordinates } from "./classes/spherical-coordinates.js";
21
24
  export { Pose as _Pose } from "./classes/pose.js";
22
25
  export { Euler as _Euler } from "./classes/euler.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,YAAY,EACV,UAAU,EACV,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACd,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAC,YAAY,EAAE,aAAa,EAAE,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAGhF,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAC1C,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAC1C,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAC1C,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAC1C,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAC1C,OAAO,EAAC,UAAU,EAAC,gCAA6B;AAEhD,YAAY,EAAC,WAAW,EAAC,6BAA0B;AACnD,YAAY,EAAC,WAAW,EAAC,6BAA0B;AACnD,YAAY,EAAC,WAAW,EAAC,6BAA0B;AACnD,YAAY,EAAC,WAAW,EAAC,6BAA0B;AACnD,YAAY,EAAC,WAAW,EAAC,6BAA0B;AAGnD,OAAO,EAAC,oBAAoB,EAAC,2CAAwC;AACrE,OAAO,EAAC,IAAI,EAAC,0BAAuB;AACpC,OAAO,EAAC,KAAK,EAAC,2BAAwB;AAEtC,OAAO,KAAK,UAAU,4BAAyB;AAG/C,OAAO,EAAC,MAAM,EAAC,wBAAqB;AAEpC,OAAO,EAEL,MAAM,EACN,SAAS,EACT,WAAW,EACX,OAAO,EACP,KAAK,EACL,MAAM,EACN,WAAW,EACX,SAAS,EACT,SAAS,EAET,OAAO,EACP,OAAO,EACP,GAAG,EACH,GAAG,EACH,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,WAAW,EACZ,wBAAqB;AAGtB,OAAO,EAAC,oBAAoB,IAAI,qBAAqB,EAAC,2CAAwC;AAC9F,OAAO,EAAC,IAAI,IAAI,KAAK,EAAC,0BAAuB;AAC7C,OAAO,EAAC,KAAK,IAAI,MAAM,EAAC,2BAAwB;AAEhD,8BAA8B;AAC9B,OAAO,KAAK,IAAI,4BAAyB;AACzC,8BAA8B;AAC9B,OAAO,KAAK,IAAI,4BAAyB;AACzC,kCAAkC;AAClC,OAAO,KAAK,IAAI,4BAAyB;AACzC,4BAA4B;AAC5B,OAAO,KAAK,IAAI,4BAAyB;AACzC,8BAA8B;AAC9B,OAAO,KAAK,IAAI,4BAAyB;AACzC,8BAA8B;AAC9B,OAAO,KAAK,IAAI,4BAAyB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,YAAY,EACV,UAAU,EACV,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACd,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAC,YAAY,EAAE,aAAa,EAAE,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAGhF,OAAO,EAAC,SAAS,IAAI,UAAU,EAAC,qCAAkC;AAClE,OAAO,EAAC,MAAM,IAAI,OAAO,EAAC,iCAA8B;AACxD,OAAO,EAAC,MAAM,IAAI,OAAO,EAAC,iCAA8B;AACxD,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAC1C,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAC1C,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAC1C,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAC1C,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAC1C,OAAO,EAAC,UAAU,EAAC,gCAA6B;AAEhD,YAAY,EAAC,WAAW,EAAC,6BAA0B;AACnD,YAAY,EAAC,WAAW,EAAC,6BAA0B;AACnD,YAAY,EAAC,WAAW,EAAC,6BAA0B;AACnD,YAAY,EAAC,WAAW,EAAC,6BAA0B;AACnD,YAAY,EAAC,WAAW,EAAC,6BAA0B;AAGnD,OAAO,EAAC,oBAAoB,EAAC,2CAAwC;AACrE,OAAO,EAAC,IAAI,EAAC,0BAAuB;AACpC,OAAO,EAAC,KAAK,EAAC,2BAAwB;AAEtC,OAAO,KAAK,UAAU,4BAAyB;AAG/C,OAAO,EAAC,MAAM,EAAC,wBAAqB;AAEpC,OAAO,EAEL,MAAM,EACN,SAAS,EACT,OAAO,EACP,cAAc,EACd,WAAW,EACX,OAAO,EACP,KAAK,EACL,MAAM,EACN,WAAW,EACX,SAAS,EACT,SAAS,EAET,OAAO,EACP,OAAO,EACP,GAAG,EACH,GAAG,EACH,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,WAAW,EACZ,wBAAqB;AAGtB,OAAO,EAAC,oBAAoB,IAAI,qBAAqB,EAAC,2CAAwC;AAC9F,OAAO,EAAC,IAAI,IAAI,KAAK,EAAC,0BAAuB;AAC7C,OAAO,EAAC,KAAK,IAAI,MAAM,EAAC,2BAAwB;AAEhD,8BAA8B;AAC9B,OAAO,KAAK,IAAI,4BAAyB;AACzC,8BAA8B;AAC9B,OAAO,KAAK,IAAI,4BAAyB;AACzC,kCAAkC;AAClC,OAAO,KAAK,IAAI,4BAAyB;AACzC,4BAA4B;AAC5B,OAAO,KAAK,IAAI,4BAAyB;AACzC,8BAA8B;AAC9B,OAAO,KAAK,IAAI,4BAAyB;AACzC,8BAA8B;AAC9B,OAAO,KAAK,IAAI,4BAAyB"}
package/dist/index.js CHANGED
@@ -2,6 +2,9 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  // classes
5
+ export { MathArray as _MathArray } from "./classes/base/math-array.js";
6
+ export { Matrix as _Matrix } from "./classes/base/matrix.js";
7
+ export { Vector as _Vector } from "./classes/base/vector.js";
5
8
  export { Vector2 } from "./classes/vector2.js";
6
9
  export { Vector3 } from "./classes/vector3.js";
7
10
  export { Vector4 } from "./classes/vector4.js";
@@ -17,7 +20,7 @@ export * as _MathUtils from "./lib/math-utils.js";
17
20
  export { assert } from "./lib/assert.js";
18
21
  export {
19
22
  // math.gl global utility methods
20
- config, configure, formatValue, isArray, clone, equals, exactEquals, toRadians, toDegrees,
23
+ config, configure, safeMod, normalizeAngle, formatValue, isArray, clone, equals, exactEquals, toRadians, toDegrees,
21
24
  // math.gl "GLSL"-style functions
22
25
  radians, degrees, sin, cos, tan, asin, acos, atan, clamp, lerp, withEpsilon } from "./lib/common.js";
23
26
  // DEPRECATED
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAoBpC,UAAU;AACV,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAC1C,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAC1C,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAC1C,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAC1C,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAC1C,OAAO,EAAC,UAAU,EAAC,gCAA6B;AAQhD,eAAe;AACf,OAAO,EAAC,oBAAoB,EAAC,2CAAwC;AACrE,OAAO,EAAC,IAAI,EAAC,0BAAuB;AACpC,OAAO,EAAC,KAAK,EAAC,2BAAwB;AAEtC,OAAO,KAAK,UAAU,4BAAyB;AAE/C,MAAM;AACN,OAAO,EAAC,MAAM,EAAC,wBAAqB;AAEpC,OAAO;AACL,iCAAiC;AACjC,MAAM,EACN,SAAS,EACT,WAAW,EACX,OAAO,EACP,KAAK,EACL,MAAM,EACN,WAAW,EACX,SAAS,EACT,SAAS;AACT,iCAAiC;AACjC,OAAO,EACP,OAAO,EACP,GAAG,EACH,GAAG,EACH,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,WAAW,EACZ,wBAAqB;AAEtB,aAAa;AACb,OAAO,EAAC,oBAAoB,IAAI,qBAAqB,EAAC,2CAAwC;AAC9F,OAAO,EAAC,IAAI,IAAI,KAAK,EAAC,0BAAuB;AAC7C,OAAO,EAAC,KAAK,IAAI,MAAM,EAAC,2BAAwB;AAEhD,8BAA8B;AAC9B,OAAO,KAAK,IAAI,4BAAyB;AACzC,8BAA8B;AAC9B,OAAO,KAAK,IAAI,4BAAyB;AACzC,kCAAkC;AAClC,OAAO,KAAK,IAAI,4BAAyB;AACzC,4BAA4B;AAC5B,OAAO,KAAK,IAAI,4BAAyB;AACzC,8BAA8B;AAC9B,OAAO,KAAK,IAAI,4BAAyB;AACzC,8BAA8B;AAC9B,OAAO,KAAK,IAAI,4BAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAoBpC,UAAU;AACV,OAAO,EAAC,SAAS,IAAI,UAAU,EAAC,qCAAkC;AAClE,OAAO,EAAC,MAAM,IAAI,OAAO,EAAC,iCAA8B;AACxD,OAAO,EAAC,MAAM,IAAI,OAAO,EAAC,iCAA8B;AACxD,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAC1C,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAC1C,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAC1C,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAC1C,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAC1C,OAAO,EAAC,UAAU,EAAC,gCAA6B;AAQhD,eAAe;AACf,OAAO,EAAC,oBAAoB,EAAC,2CAAwC;AACrE,OAAO,EAAC,IAAI,EAAC,0BAAuB;AACpC,OAAO,EAAC,KAAK,EAAC,2BAAwB;AAEtC,OAAO,KAAK,UAAU,4BAAyB;AAE/C,MAAM;AACN,OAAO,EAAC,MAAM,EAAC,wBAAqB;AAEpC,OAAO;AACL,iCAAiC;AACjC,MAAM,EACN,SAAS,EACT,OAAO,EACP,cAAc,EACd,WAAW,EACX,OAAO,EACP,KAAK,EACL,MAAM,EACN,WAAW,EACX,SAAS,EACT,SAAS;AACT,iCAAiC;AACjC,OAAO,EACP,OAAO,EACP,GAAG,EACH,GAAG,EACH,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,WAAW,EACZ,wBAAqB;AAEtB,aAAa;AACb,OAAO,EAAC,oBAAoB,IAAI,qBAAqB,EAAC,2CAAwC;AAC9F,OAAO,EAAC,IAAI,IAAI,KAAK,EAAC,0BAAuB;AAC7C,OAAO,EAAC,KAAK,IAAI,MAAM,EAAC,2BAAwB;AAEhD,8BAA8B;AAC9B,OAAO,KAAK,IAAI,4BAAyB;AACzC,8BAA8B;AAC9B,OAAO,KAAK,IAAI,4BAAyB;AACzC,kCAAkC;AAClC,OAAO,KAAK,IAAI,4BAAyB;AACzC,4BAA4B;AAC5B,OAAO,KAAK,IAAI,4BAAyB;AACzC,8BAA8B;AAC9B,OAAO,KAAK,IAAI,4BAAyB;AACzC,8BAA8B;AAC9B,OAAO,KAAK,IAAI,4BAAyB"}
@@ -47,6 +47,22 @@ export declare function radians(degrees: NumericArray, result?: NumericArray): N
47
47
  */
48
48
  export declare function degrees(radians: number): number;
49
49
  export declare function degrees(radians: NumericArray, result?: NumericArray): NumericArray;
50
+ /**
51
+ * The modulo operation that also works for negative dividends.
52
+ *
53
+ * @param m The dividend.
54
+ * @param n The divisor.
55
+ * @returns The remainder.
56
+ */
57
+ export declare function safeMod(m: number, n: number): number;
58
+ /**
59
+ * Produces an angle restricted to its equivalent in a normalized range
60
+ *
61
+ * @param angle in radians
62
+ * @param range 'zero-to-two-pi' - in the range 0 <= angle <= 2PI, | 'negative-pi-to-pi' - -Pi <= angle <= Pi
63
+ * @returns The angle in the range [0, <code>TWO_PI</code>] or [<code>-PI</code>, <code>PI</code>]..
64
+ */
65
+ export declare function normalizeAngle(angle: number, range: 'zero-to-two-pi' | 'negative-pi-to-pi'): number;
50
66
  /**
51
67
  * "GLSL equivalent" of `Math.sin`: Works on single values and vectors
52
68
  * @deprecated
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/lib/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/lib/common.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  // math.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
+ import { EPSILON14, TWO_PI, PI } from "./math-utils.js";
4
5
  const RADIANS_TO_DEGREES = (1 / Math.PI) * 180;
5
6
  const DEGREES_TO_RADIANS = (1 / 180) * Math.PI;
6
7
  const DEFAULT_CONFIG = {
@@ -51,55 +52,113 @@ export function toDegrees(radians) {
51
52
  return degrees(radians);
52
53
  }
53
54
  export function radians(degrees, result) {
54
- return map(degrees, (degrees) => degrees * DEGREES_TO_RADIANS, result);
55
+ return map(degrees, degrees => degrees * DEGREES_TO_RADIANS, result);
55
56
  }
56
57
  export function degrees(radians, result) {
57
- return map(radians, (radians) => radians * RADIANS_TO_DEGREES, result);
58
+ return map(radians, radians => radians * RADIANS_TO_DEGREES, result);
59
+ }
60
+ /**
61
+ * The modulo operation that also works for negative dividends.
62
+ *
63
+ * @param m The dividend.
64
+ * @param n The divisor.
65
+ * @returns The remainder.
66
+ */
67
+ export function safeMod(m, n) {
68
+ if (Math.sign(m) === Math.sign(n) && Math.abs(m) < Math.abs(n)) {
69
+ return m;
70
+ }
71
+ return ((m % n) + n) % n;
72
+ }
73
+ /**
74
+ * Produces an angle restricted to its equivalent in a normalized range
75
+ *
76
+ * @param angle in radians
77
+ * @param range 'zero-to-two-pi' - in the range 0 <= angle <= 2PI, | 'negative-pi-to-pi' - -Pi <= angle <= Pi
78
+ * @returns The angle in the range [0, <code>TWO_PI</code>] or [<code>-PI</code>, <code>PI</code>]..
79
+ */
80
+ export function normalizeAngle(angle, range) {
81
+ switch (range) {
82
+ case 'negative-pi-to-pi':
83
+ return negativePiToPi(angle);
84
+ case 'zero-to-two-pi':
85
+ return zeroToTwoPi(angle);
86
+ default:
87
+ return angle;
88
+ }
89
+ }
90
+ /**
91
+ * Produces an angle in the range 0 <= angle <= 2Pi which is equivalent to the provided angle.
92
+ *
93
+ * @param angle in radians
94
+ * @returns The angle in the range [0, <code>TWO_PI</code>].
95
+ */
96
+ function zeroToTwoPi(angle) {
97
+ if (angle >= 0 && angle <= TWO_PI) {
98
+ return angle;
99
+ }
100
+ const remainder = safeMod(angle, TWO_PI);
101
+ if (Math.abs(remainder) < EPSILON14 && Math.abs(angle) > EPSILON14) {
102
+ return TWO_PI;
103
+ }
104
+ return remainder;
105
+ }
106
+ /**
107
+ * Produces an angle in the range -Pi <= angle <= Pi which is equivalent to the provided angle.
108
+ *
109
+ * @param angle in radians
110
+ * @returns The angle in the range [<code>-PI</code>, <code>PI</code>].
111
+ */
112
+ function negativePiToPi(angle) {
113
+ if (angle >= -PI && angle <= PI) {
114
+ return angle;
115
+ }
116
+ return zeroToTwoPi(angle + PI) - PI;
58
117
  }
59
118
  /**
60
119
  * "GLSL equivalent" of `Math.sin`: Works on single values and vectors
61
120
  * @deprecated
62
121
  */
63
122
  export function sin(radians, result) {
64
- return map(radians, (angle) => Math.sin(angle), result);
123
+ return map(radians, angle => Math.sin(angle), result);
65
124
  }
66
125
  /**
67
126
  * "GLSL equivalent" of `Math.cos`: Works on single values and vectors
68
127
  * @deprecated
69
128
  */
70
129
  export function cos(radians, result) {
71
- return map(radians, (angle) => Math.cos(angle), result);
130
+ return map(radians, angle => Math.cos(angle), result);
72
131
  }
73
132
  /**
74
133
  * "GLSL equivalent" of `Math.tan`: Works on single values and vectors
75
134
  * @deprecated
76
135
  */
77
136
  export function tan(radians, result) {
78
- return map(radians, (angle) => Math.tan(angle), result);
137
+ return map(radians, angle => Math.tan(angle), result);
79
138
  }
80
139
  /**
81
140
  * "GLSL equivalent" of `Math.asin`: Works on single values and vectors
82
141
  * @deprecated
83
142
  */
84
143
  export function asin(radians, result) {
85
- return map(radians, (angle) => Math.asin(angle), result);
144
+ return map(radians, angle => Math.asin(angle), result);
86
145
  }
87
146
  /**
88
147
  * "GLSL equivalent" of `Math.acos`: Works on single values and vectors
89
148
  * @deprecated
90
149
  */
91
150
  export function acos(radians, result) {
92
- return map(radians, (angle) => Math.acos(angle), result);
151
+ return map(radians, angle => Math.acos(angle), result);
93
152
  }
94
153
  /**
95
154
  * "GLSL equivalent" of `Math.atan`: Works on single values and vectors
96
155
  * @deprecated
97
156
  */
98
157
  export function atan(radians, result) {
99
- return map(radians, (angle) => Math.atan(angle), result);
158
+ return map(radians, angle => Math.atan(angle), result);
100
159
  }
101
160
  export function clamp(value, min, max) {
102
- return map(value, (value) => Math.max(min, Math.min(max, value)));
161
+ return map(value, value => Math.max(min, Math.min(max, value)));
103
162
  }
104
163
  export function lerp(a, b, t) {
105
164
  if (isArray(a)) {
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/lib/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/lib/common.ts"],"names":[],"mappings":"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"}
@@ -21,5 +21,6 @@ export declare const EPSILON20 = 1e-20;
21
21
  export declare const PI_OVER_TWO: number;
22
22
  export declare const PI_OVER_FOUR: number;
23
23
  export declare const PI_OVER_SIX: number;
24
+ export declare const PI: number;
24
25
  export declare const TWO_PI: number;
25
26
  //# sourceMappingURL=math-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"math-utils.d.ts","sourceRoot":"","sources":["../../src/lib/math-utils.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,QAAQ,MAAO,CAAC;AAC7B,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,QAAQ,QAAO,CAAC;AAC7B,eAAO,MAAM,QAAQ,SAAO,CAAC;AAC7B,eAAO,MAAM,QAAQ,UAAO,CAAC;AAC7B,eAAO,MAAM,QAAQ,WAAO,CAAC;AAC7B,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,SAAS,QAAQ,CAAC;AAC/B,eAAO,MAAM,SAAS,QAAQ,CAAC;AAC/B,eAAO,MAAM,SAAS,QAAQ,CAAC;AAC/B,eAAO,MAAM,SAAS,QAAQ,CAAC;AAC/B,eAAO,MAAM,SAAS,QAAQ,CAAC;AAC/B,eAAO,MAAM,SAAS,QAAQ,CAAC;AAC/B,eAAO,MAAM,SAAS,QAAQ,CAAC;AAC/B,eAAO,MAAM,SAAS,QAAQ,CAAC;AAC/B,eAAO,MAAM,SAAS,QAAQ,CAAC;AAC/B,eAAO,MAAM,SAAS,QAAQ,CAAC;AAC/B,eAAO,MAAM,SAAS,QAAQ,CAAC;AAE/B,eAAO,MAAM,WAAW,QAAc,CAAC;AACvC,eAAO,MAAM,YAAY,QAAc,CAAC;AACxC,eAAO,MAAM,WAAW,QAAc,CAAC;AAEvC,eAAO,MAAM,MAAM,QAAc,CAAC"}
1
+ {"version":3,"file":"math-utils.d.ts","sourceRoot":"","sources":["../../src/lib/math-utils.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,QAAQ,MAAO,CAAC;AAC7B,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,QAAQ,QAAO,CAAC;AAC7B,eAAO,MAAM,QAAQ,SAAO,CAAC;AAC7B,eAAO,MAAM,QAAQ,UAAO,CAAC;AAC7B,eAAO,MAAM,QAAQ,WAAO,CAAC;AAC7B,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,SAAS,QAAQ,CAAC;AAC/B,eAAO,MAAM,SAAS,QAAQ,CAAC;AAC/B,eAAO,MAAM,SAAS,QAAQ,CAAC;AAC/B,eAAO,MAAM,SAAS,QAAQ,CAAC;AAC/B,eAAO,MAAM,SAAS,QAAQ,CAAC;AAC/B,eAAO,MAAM,SAAS,QAAQ,CAAC;AAC/B,eAAO,MAAM,SAAS,QAAQ,CAAC;AAC/B,eAAO,MAAM,SAAS,QAAQ,CAAC;AAC/B,eAAO,MAAM,SAAS,QAAQ,CAAC;AAC/B,eAAO,MAAM,SAAS,QAAQ,CAAC;AAC/B,eAAO,MAAM,SAAS,QAAQ,CAAC;AAE/B,eAAO,MAAM,WAAW,QAAc,CAAC;AACvC,eAAO,MAAM,YAAY,QAAc,CAAC;AACxC,eAAO,MAAM,WAAW,QAAc,CAAC;AAEvC,eAAO,MAAM,EAAE,QAAU,CAAC;AAC1B,eAAO,MAAM,MAAM,QAAc,CAAC"}
@@ -26,5 +26,6 @@ export const EPSILON20 = 1e-20;
26
26
  export const PI_OVER_TWO = Math.PI / 2;
27
27
  export const PI_OVER_FOUR = Math.PI / 4;
28
28
  export const PI_OVER_SIX = Math.PI / 6;
29
+ export const PI = Math.PI;
29
30
  export const TWO_PI = Math.PI * 2;
30
31
  //# sourceMappingURL=math-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"math-utils.js","sourceRoot":"","sources":["../../src/lib/math-utils.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,qDAAqD;AACrD,iCAAiC;AACjC,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC7B,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC7B,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC7B,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC7B,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC7B,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC7B,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC7B,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC7B,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC7B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAE/B,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACxC,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAEvC,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"math-utils.js","sourceRoot":"","sources":["../../src/lib/math-utils.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,qDAAqD;AACrD,iCAAiC;AACjC,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC7B,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC7B,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC7B,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC7B,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC7B,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC7B,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC7B,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC7B,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC7B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAE/B,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACxC,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAEvC,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC"}
@@ -30,7 +30,7 @@ const map = {};
30
30
  export function deprecated(method, version) {
31
31
  if (!map[method]) {
32
32
  map[method] = true;
33
- // eslint-disable-next-line
33
+ // biome-ignore lint/suspicious/noConsole: deprecations are intentionally reported to users.
34
34
  console.warn(`${method} has been removed in version ${version}, see upgrade guide for more information`);
35
35
  }
36
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/lib/validators.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,MAAM,EAAC,oBAAiB;AAEhC,MAAM,UAAU,cAAc,CAAC,CAAe,EAAE,MAAc;IAC5D,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,sDAAsD;IACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,CAAI,EACJ,MAAc,EACd,aAAqB,EAAE;IAEvB,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,sCAAsC,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,GAAG,GAA4B,EAAE,CAAC;AAExC,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,OAAe;IACxD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACjB,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QACnB,2BAA2B;QAC3B,OAAO,CAAC,IAAI,CACV,GAAG,MAAM,gCAAgC,OAAO,0CAA0C,CAC3F,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/lib/validators.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,MAAM,EAAC,oBAAiB;AAEhC,MAAM,UAAU,cAAc,CAAC,CAAe,EAAE,MAAc;IAC5D,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,sDAAsD;IACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,CAAI,EACJ,MAAc,EACd,aAAqB,EAAE;IAEvB,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,sCAAsC,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,GAAG,GAA4B,EAAE,CAAC;AAExC,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,OAAe;IACxD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACjB,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QACnB,4FAA4F;QAC5F,OAAO,CAAC,IAAI,CACV,GAAG,MAAM,gCAAgC,OAAO,0CAA0C,CAC3F,CAAC;IACJ,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
9
- "version": "4.1.0",
9
+ "version": "4.2.0-alpha.5",
10
10
  "keywords": [
11
11
  "webgl",
12
12
  "javascript",
@@ -45,7 +45,7 @@
45
45
  "./src/lib/common.js"
46
46
  ],
47
47
  "dependencies": {
48
- "@math.gl/types": "4.1.0"
48
+ "@math.gl/types": "4.2.0-alpha.5"
49
49
  },
50
- "gitHead": "76820f54e2a9034b42bd24ffeb381cc4e01ad46e"
50
+ "gitHead": "9c13785761867748e2edb167b5f2749dce803039"
51
51
  }
@@ -294,15 +294,15 @@ export class Euler extends MathArray {
294
294
  case RotationOrder.XYZ:
295
295
  return q.rotateX(this[0]).rotateY(this[1]).rotateZ(this[2]);
296
296
  case RotationOrder.YXZ:
297
- return q.rotateY(this[0]).rotateX(this[1]).rotateZ(this[2]);
297
+ return q.rotateY(this[1]).rotateX(this[0]).rotateZ(this[2]);
298
298
  case RotationOrder.ZXY:
299
- return q.rotateZ(this[0]).rotateX(this[1]).rotateY(this[2]);
299
+ return q.rotateZ(this[2]).rotateX(this[0]).rotateY(this[1]);
300
300
  case RotationOrder.ZYX:
301
- return q.rotateZ(this[0]).rotateY(this[1]).rotateX(this[2]);
301
+ return q.rotateZ(this[2]).rotateY(this[1]).rotateX(this[0]);
302
302
  case RotationOrder.YZX:
303
- return q.rotateY(this[0]).rotateZ(this[1]).rotateX(this[2]);
303
+ return q.rotateY(this[1]).rotateZ(this[2]).rotateX(this[0]);
304
304
  case RotationOrder.XZY:
305
- return q.rotateX(this[0]).rotateZ(this[1]).rotateY(this[2]);
305
+ return q.rotateX(this[0]).rotateZ(this[2]).rotateY(this[1]);
306
306
  default:
307
307
  throw new Error(ERR_UNKNOWN_ORDER);
308
308
  }
@@ -12,7 +12,7 @@ import * as glMatrix from './common.js';
12
12
  */
13
13
  export function create() {
14
14
  const out = new glMatrix.ARRAY_TYPE(9);
15
- if (glMatrix.ARRAY_TYPE != Float32Array) {
15
+ if (glMatrix.ARRAY_TYPE !== Float32Array) {
16
16
  out[1] = 0;
17
17
  out[2] = 0;
18
18
  out[3] = 0;
@@ -15,7 +15,7 @@ import * as glMatrix from './common.js';
15
15
  */
16
16
  export function create() {
17
17
  const out = new glMatrix.ARRAY_TYPE(16);
18
- if (glMatrix.ARRAY_TYPE != Float32Array) {
18
+ if (glMatrix.ARRAY_TYPE !== Float32Array) {
19
19
  out[1] = 0;
20
20
  out[2] = 0;
21
21
  out[3] = 0;
@@ -20,7 +20,7 @@ import * as vec4 from './vec4.js';
20
20
  */
21
21
  export function create() {
22
22
  const out = new glMatrix.ARRAY_TYPE(4);
23
- if (glMatrix.ARRAY_TYPE != Float32Array) {
23
+ if (glMatrix.ARRAY_TYPE !== Float32Array) {
24
24
  out[0] = 0;
25
25
  out[1] = 0;
26
26
  out[2] = 0;
@@ -16,7 +16,7 @@ import * as glMatrix from './common.js';
16
16
  */
17
17
  export function create(): NumericArray {
18
18
  const out = new glMatrix.ARRAY_TYPE(2);
19
- if (glMatrix.ARRAY_TYPE != Float32Array) {
19
+ if (glMatrix.ARRAY_TYPE !== Float32Array) {
20
20
  out[0] = 0;
21
21
  out[1] = 0;
22
22
  }
@@ -15,7 +15,7 @@ import * as glMatrix from './common.js';
15
15
  */
16
16
  export function create() {
17
17
  const out = new glMatrix.ARRAY_TYPE(3);
18
- if (glMatrix.ARRAY_TYPE != Float32Array) {
18
+ if (glMatrix.ARRAY_TYPE !== Float32Array) {
19
19
  out[0] = 0;
20
20
  out[1] = 0;
21
21
  out[2] = 0;
@@ -15,7 +15,7 @@ import * as glMatrix from './common.js';
15
15
  */
16
16
  export function create() {
17
17
  const out = new glMatrix.ARRAY_TYPE(4);
18
- if (glMatrix.ARRAY_TYPE != Float32Array) {
18
+ if (glMatrix.ARRAY_TYPE !== Float32Array) {
19
19
  out[0] = 0;
20
20
  out[1] = 0;
21
21
  out[2] = 0;
package/src/index.ts CHANGED
@@ -21,6 +21,9 @@ export type {
21
21
  export type {isTypedArray, isNumberArray, isNumericArray} from '@math.gl/types';
22
22
 
23
23
  // classes
24
+ export {MathArray as _MathArray} from './classes/base/math-array';
25
+ export {Matrix as _Matrix} from './classes/base/matrix';
26
+ export {Vector as _Vector} from './classes/base/vector';
24
27
  export {Vector2} from './classes/vector2';
25
28
  export {Vector3} from './classes/vector3';
26
29
  export {Vector4} from './classes/vector4';
@@ -48,6 +51,8 @@ export {
48
51
  // math.gl global utility methods
49
52
  config,
50
53
  configure,
54
+ safeMod,
55
+ normalizeAngle,
51
56
  formatValue,
52
57
  isArray,
53
58
  clone,
package/src/lib/common.ts CHANGED
@@ -7,6 +7,7 @@
7
7
  import type {NumericArray} from '@math.gl/types';
8
8
 
9
9
  import type {MathArray} from '../classes/base/math-array';
10
+ import {EPSILON14, TWO_PI, PI} from './math-utils';
10
11
 
11
12
  const RADIANS_TO_DEGREES = (1 / Math.PI) * 180;
12
13
  const DEGREES_TO_RADIANS = (1 / 180) * Math.PI;
@@ -106,7 +107,7 @@ export function radians(
106
107
  degrees: number | NumericArray,
107
108
  result?: NumericArray
108
109
  ): number | NumericArray {
109
- return map(degrees, (degrees) => degrees * DEGREES_TO_RADIANS, result);
110
+ return map(degrees, degrees => degrees * DEGREES_TO_RADIANS, result);
110
111
  }
111
112
 
112
113
  /**
@@ -119,7 +120,73 @@ export function degrees(
119
120
  radians: number | NumericArray,
120
121
  result?: NumericArray
121
122
  ): number | NumericArray {
122
- return map(radians, (radians) => radians * RADIANS_TO_DEGREES, result);
123
+ return map(radians, radians => radians * RADIANS_TO_DEGREES, result);
124
+ }
125
+
126
+ /**
127
+ * The modulo operation that also works for negative dividends.
128
+ *
129
+ * @param m The dividend.
130
+ * @param n The divisor.
131
+ * @returns The remainder.
132
+ */
133
+ export function safeMod(m: number, n: number): number {
134
+ if (Math.sign(m) === Math.sign(n) && Math.abs(m) < Math.abs(n)) {
135
+ return m;
136
+ }
137
+
138
+ return ((m % n) + n) % n;
139
+ }
140
+
141
+ /**
142
+ * Produces an angle restricted to its equivalent in a normalized range
143
+ *
144
+ * @param angle in radians
145
+ * @param range 'zero-to-two-pi' - in the range 0 <= angle <= 2PI, | 'negative-pi-to-pi' - -Pi <= angle <= Pi
146
+ * @returns The angle in the range [0, <code>TWO_PI</code>] or [<code>-PI</code>, <code>PI</code>]..
147
+ */
148
+ export function normalizeAngle(
149
+ angle: number,
150
+ range: 'zero-to-two-pi' | 'negative-pi-to-pi'
151
+ ): number {
152
+ switch (range) {
153
+ case 'negative-pi-to-pi':
154
+ return negativePiToPi(angle);
155
+ case 'zero-to-two-pi':
156
+ return zeroToTwoPi(angle);
157
+ default:
158
+ return angle;
159
+ }
160
+ }
161
+
162
+ /**
163
+ * Produces an angle in the range 0 <= angle <= 2Pi which is equivalent to the provided angle.
164
+ *
165
+ * @param angle in radians
166
+ * @returns The angle in the range [0, <code>TWO_PI</code>].
167
+ */
168
+ function zeroToTwoPi(angle: number): number {
169
+ if (angle >= 0 && angle <= TWO_PI) {
170
+ return angle;
171
+ }
172
+ const remainder = safeMod(angle, TWO_PI);
173
+ if (Math.abs(remainder) < EPSILON14 && Math.abs(angle) > EPSILON14) {
174
+ return TWO_PI;
175
+ }
176
+ return remainder;
177
+ }
178
+
179
+ /**
180
+ * Produces an angle in the range -Pi <= angle <= Pi which is equivalent to the provided angle.
181
+ *
182
+ * @param angle in radians
183
+ * @returns The angle in the range [<code>-PI</code>, <code>PI</code>].
184
+ */
185
+ function negativePiToPi(angle: number): number {
186
+ if (angle >= -PI && angle <= PI) {
187
+ return angle;
188
+ }
189
+ return zeroToTwoPi(angle + PI) - PI;
123
190
  }
124
191
 
125
192
  /**
@@ -127,7 +194,7 @@ export function degrees(
127
194
  * @deprecated
128
195
  */
129
196
  export function sin(radians: number | NumericArray, result?: NumericArray): number | NumericArray {
130
- return map(radians, (angle) => Math.sin(angle), result);
197
+ return map(radians, angle => Math.sin(angle), result);
131
198
  }
132
199
 
133
200
  /**
@@ -135,7 +202,7 @@ export function sin(radians: number | NumericArray, result?: NumericArray): numb
135
202
  * @deprecated
136
203
  */
137
204
  export function cos(radians: number | NumericArray, result?: NumericArray): number | NumericArray {
138
- return map(radians, (angle) => Math.cos(angle), result);
205
+ return map(radians, angle => Math.cos(angle), result);
139
206
  }
140
207
 
141
208
  /**
@@ -143,7 +210,7 @@ export function cos(radians: number | NumericArray, result?: NumericArray): numb
143
210
  * @deprecated
144
211
  */
145
212
  export function tan(radians: number | NumericArray, result?: NumericArray): number | NumericArray {
146
- return map(radians, (angle) => Math.tan(angle), result);
213
+ return map(radians, angle => Math.tan(angle), result);
147
214
  }
148
215
 
149
216
  /**
@@ -151,7 +218,7 @@ export function tan(radians: number | NumericArray, result?: NumericArray): numb
151
218
  * @deprecated
152
219
  */
153
220
  export function asin(radians: number | NumericArray, result?: NumericArray): number | NumericArray {
154
- return map(radians, (angle) => Math.asin(angle), result);
221
+ return map(radians, angle => Math.asin(angle), result);
155
222
  }
156
223
 
157
224
  /**
@@ -159,7 +226,7 @@ export function asin(radians: number | NumericArray, result?: NumericArray): num
159
226
  * @deprecated
160
227
  */
161
228
  export function acos(radians: number | NumericArray, result?: NumericArray): number | NumericArray {
162
- return map(radians, (angle) => Math.acos(angle), result);
229
+ return map(radians, angle => Math.acos(angle), result);
163
230
  }
164
231
 
165
232
  /**
@@ -167,7 +234,7 @@ export function acos(radians: number | NumericArray, result?: NumericArray): num
167
234
  * @deprecated
168
235
  */
169
236
  export function atan(radians: number | NumericArray, result?: NumericArray): number | NumericArray {
170
- return map(radians, (angle) => Math.atan(angle), result);
237
+ return map(radians, angle => Math.atan(angle), result);
171
238
  }
172
239
 
173
240
  /**
@@ -181,7 +248,7 @@ export function clamp(
181
248
  min: number,
182
249
  max: number
183
250
  ): number | NumericArray {
184
- return map(value, (value) => Math.max(min, Math.min(max, value)));
251
+ return map(value, value => Math.max(min, Math.min(max, value)));
185
252
  }
186
253
 
187
254
  /**
@@ -2,6 +2,15 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
+ // Float16Array is declared in a separate TypeScript library. This reference affects types only.
6
+ // eslint-disable-next-line spaced-comment
7
+ /// <reference lib="es2025.float16" preserve="true" />
8
+
9
+ /**
10
+ * Numeric arrays accepted by the local gl-matrix compatibility declarations.
11
+ *
12
+ * @remarks Includes `Float16Array`; math.gl does not provide a runtime polyfill.
13
+ */
5
14
  type NumericArray =
6
15
  | Int8Array
7
16
  | Uint8Array
@@ -10,6 +19,7 @@ type NumericArray =
10
19
  | Int32Array
11
20
  | Uint32Array
12
21
  | Uint8ClampedArray
22
+ | Float16Array
13
23
  | Float32Array
14
24
  | Float64Array
15
25
  | number[];
@@ -29,4 +29,5 @@ export const PI_OVER_TWO = Math.PI / 2;
29
29
  export const PI_OVER_FOUR = Math.PI / 4;
30
30
  export const PI_OVER_SIX = Math.PI / 6;
31
31
 
32
+ export const PI = Math.PI;
32
33
  export const TWO_PI = Math.PI * 2;
@@ -41,7 +41,7 @@ const map: Record<string, boolean> = {};
41
41
  export function deprecated(method: string, version: string): void {
42
42
  if (!map[method]) {
43
43
  map[method] = true;
44
- // eslint-disable-next-line
44
+ // biome-ignore lint/suspicious/noConsole: deprecations are intentionally reported to users.
45
45
  console.warn(
46
46
  `${method} has been removed in version ${version}, see upgrade guide for more information`
47
47
  );