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

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/dist/index.d.ts CHANGED
@@ -16,7 +16,7 @@ export { Pose } from "./classes/pose.js";
16
16
  export { Euler } from "./classes/euler.js";
17
17
  export * as _MathUtils from "./lib/math-utils.js";
18
18
  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";
19
+ 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
20
  export { SphericalCoordinates as _SphericalCoordinates } from "./classes/spherical-coordinates.js";
21
21
  export { Pose as _Pose } from "./classes/pose.js";
22
22
  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,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
@@ -17,7 +17,7 @@ export * as _MathUtils from "./lib/math-utils.js";
17
17
  export { assert } from "./lib/assert.js";
18
18
  export {
19
19
  // math.gl global utility methods
20
- config, configure, formatValue, isArray, clone, equals, exactEquals, toRadians, toDegrees,
20
+ config, configure, safeMod, normalizeAngle, formatValue, isArray, clone, equals, exactEquals, toRadians, toDegrees,
21
21
  // math.gl "GLSL"-style functions
22
22
  radians, degrees, sin, cos, tan, asin, acos, atan, clamp, lerp, withEpsilon } from "./lib/common.js";
23
23
  // 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,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 = {
@@ -56,6 +57,64 @@ export function radians(degrees, result) {
56
57
  export function degrees(radians, result) {
57
58
  return map(radians, (radians) => radians * RADIANS_TO_DEGREES, result);
58
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;
117
+ }
59
118
  /**
60
119
  * "GLSL equivalent" of `Math.sin`: Works on single values and vectors
61
120
  * @deprecated
@@ -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"}
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.3",
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.3"
49
49
  },
50
- "gitHead": "76820f54e2a9034b42bd24ffeb381cc4e01ad46e"
50
+ "gitHead": "4238aa95fb38da43a65c6e5f2b8343a875666d92"
51
51
  }
@@ -5,6 +5,7 @@
5
5
 
6
6
  import {NumericArray, NumericArray9} from '@math.gl/types';
7
7
  import {Matrix} from './base/matrix';
8
+ import {Vector3} from './vector3';
8
9
  import {checkVector} from '../lib/validators';
9
10
 
10
11
  import {vec4_transformMat3} from '../lib/gl-matrix-extras';
@@ -202,6 +203,54 @@ export class Matrix3 extends Matrix {
202
203
  return this.check();
203
204
  }
204
205
 
206
+ /**
207
+ * Computes the product of this matrix and a column vector.
208
+ *
209
+ * @param {Vector3} cartesian The column.
210
+ * @param {Vector3} result The object onto which to store the result.
211
+ * @returns {Vector3} The modified result parameter.
212
+ */
213
+ multiplyByVector(cartesian: Vector3, result?: Vector3): Vector3 {
214
+ if (!result) result = new Vector3();
215
+
216
+ const vX = cartesian.x;
217
+ const vY = cartesian.y;
218
+ const vZ = cartesian.z;
219
+
220
+ const x = this[0] * vX + this[3] * vY + this[6] * vZ;
221
+ const y = this[1] * vX + this[4] * vY + this[7] * vZ;
222
+ const z = this[2] * vX + this[5] * vY + this[8] * vZ;
223
+
224
+ result.x = x;
225
+ result.y = y;
226
+ result.z = z;
227
+
228
+ return result;
229
+ }
230
+
231
+ /**
232
+ * Computes the product of this matrix times a (non-uniform) scale, as if the scale were a scale matrix.
233
+ *
234
+ * @param {Vector3} scale The non-uniform scale on the right-hand side.
235
+ * @param {Matrix3} result The object onto which to store the result.
236
+ * @returns {Matrix3} The modified result parameter.
237
+ */
238
+ multiplyByScale(scale: Vector3, result?: Matrix3): Matrix3 {
239
+ if (!result) result = new Matrix3();
240
+
241
+ result[0] = this[0] * scale.x;
242
+ result[1] = this[1] * scale.x;
243
+ result[2] = this[2] * scale.x;
244
+ result[3] = this[3] * scale.y;
245
+ result[4] = this[4] * scale.y;
246
+ result[5] = this[5] * scale.y;
247
+ result[6] = this[6] * scale.z;
248
+ result[7] = this[7] * scale.z;
249
+ result[8] = this[8] * scale.z;
250
+
251
+ return result;
252
+ }
253
+
205
254
  rotate(radians: number): this {
206
255
  mat3_rotate(this, this, radians);
207
256
  return this.check();
package/src/index.ts CHANGED
@@ -48,6 +48,8 @@ export {
48
48
  // math.gl global utility methods
49
49
  config,
50
50
  configure,
51
+ safeMod,
52
+ normalizeAngle,
51
53
  formatValue,
52
54
  isArray,
53
55
  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;
@@ -122,6 +123,72 @@ export function degrees(
122
123
  return map(radians, (radians) => radians * RADIANS_TO_DEGREES, result);
123
124
  }
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;
190
+ }
191
+
125
192
  /**
126
193
  * "GLSL equivalent" of `Math.sin`: Works on single values and vectors
127
194
  * @deprecated
@@ -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;