@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/classes/matrix3.d.ts +17 -0
- package/dist/classes/matrix3.d.ts.map +1 -1
- package/dist/classes/matrix3.js +43 -0
- package/dist/classes/matrix3.js.map +1 -1
- package/dist/gl-matrix/wip/mat2.d.ts.map +1 -1
- package/dist/gl-matrix/wip/mat2d.d.ts.map +1 -1
- package/dist/index.cjs +133 -55
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/common.d.ts +16 -0
- package/dist/lib/common.d.ts.map +1 -1
- package/dist/lib/common.js +59 -0
- package/dist/lib/common.js.map +1 -1
- package/dist/lib/math-utils.d.ts +1 -0
- package/dist/lib/math-utils.d.ts.map +1 -1
- package/dist/lib/math-utils.js +1 -0
- package/dist/lib/math-utils.js.map +1 -1
- package/package.json +3 -3
- package/src/classes/matrix3.ts +49 -0
- package/src/index.ts +2 -0
- package/src/lib/common.ts +67 -0
- package/src/lib/math-utils.ts +1 -0
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";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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"}
|
package/dist/lib/common.d.ts
CHANGED
|
@@ -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
|
package/dist/lib/common.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/lib/common.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,EAAC,SAAS,EAAC,sCAAmC;
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/lib/common.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/common.js
CHANGED
|
@@ -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
|
package/dist/lib/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/lib/common.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/lib/common.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/math-utils.d.ts
CHANGED
|
@@ -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"}
|
package/dist/lib/math-utils.js
CHANGED
|
@@ -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.
|
|
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.
|
|
48
|
+
"@math.gl/types": "4.2.0-alpha.3"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "4238aa95fb38da43a65c6e5f2b8343a875666d92"
|
|
51
51
|
}
|
package/src/classes/matrix3.ts
CHANGED
|
@@ -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
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
|