@math.gl/core 3.6.0-alpha.1 → 3.6.0-alpha.2
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/base/math-array.d.ts +61 -31
- package/dist/classes/base/math-array.d.ts.map +1 -1
- package/dist/classes/base/math-array.js +67 -65
- package/dist/classes/base/matrix.d.ts +12 -10
- package/dist/classes/base/matrix.d.ts.map +1 -1
- package/dist/classes/base/matrix.js +2 -10
- package/dist/classes/base/vector.d.ts +37 -25
- package/dist/classes/base/vector.d.ts.map +1 -1
- package/dist/classes/base/vector.js +17 -24
- package/dist/classes/euler.d.ts +59 -55
- package/dist/classes/euler.d.ts.map +1 -1
- package/dist/classes/euler.js +57 -77
- package/dist/classes/matrix3.d.ts +58 -41
- package/dist/classes/matrix3.d.ts.map +1 -1
- package/dist/classes/matrix3.js +68 -59
- package/dist/classes/matrix4.d.ts +214 -90
- package/dist/classes/matrix4.d.ts.map +1 -1
- package/dist/classes/matrix4.js +252 -171
- package/dist/classes/pose.d.ts +29 -26
- package/dist/classes/pose.d.ts.map +1 -1
- package/dist/classes/pose.js +6 -23
- package/dist/classes/quaternion.d.ts +61 -40
- package/dist/classes/quaternion.d.ts.map +1 -1
- package/dist/classes/quaternion.js +49 -53
- package/dist/classes/spherical-coordinates.d.ts +45 -25
- package/dist/classes/spherical-coordinates.d.ts.map +1 -1
- package/dist/classes/spherical-coordinates.js +30 -24
- package/dist/classes/vector2.d.ts +51 -15
- package/dist/classes/vector2.d.ts.map +1 -1
- package/dist/classes/vector2.js +29 -23
- package/dist/classes/vector3.d.ts +47 -32
- package/dist/classes/vector3.d.ts.map +1 -1
- package/dist/classes/vector3.js +16 -30
- package/dist/classes/vector4.d.ts +37 -19
- package/dist/classes/vector4.d.ts.map +1 -1
- package/dist/classes/vector4.js +12 -24
- package/dist/es5/classes/base/math-array.js +248 -179
- package/dist/es5/classes/base/math-array.js.map +1 -1
- package/dist/es5/classes/base/matrix.js +74 -54
- package/dist/es5/classes/base/matrix.js.map +1 -1
- package/dist/es5/classes/base/vector.js +167 -121
- package/dist/es5/classes/base/vector.js.map +1 -1
- package/dist/es5/classes/euler.js +575 -480
- package/dist/es5/classes/euler.js.map +1 -1
- package/dist/es5/classes/matrix3.js +234 -158
- package/dist/es5/classes/matrix3.js.map +1 -1
- package/dist/es5/classes/matrix4.js +510 -417
- package/dist/es5/classes/matrix4.js.map +1 -1
- package/dist/es5/classes/pose.js +126 -101
- package/dist/es5/classes/pose.js.map +1 -1
- package/dist/es5/classes/quaternion.js +285 -213
- package/dist/es5/classes/quaternion.js.map +1 -1
- package/dist/es5/classes/spherical-coordinates.js +170 -125
- package/dist/es5/classes/spherical-coordinates.js.map +1 -1
- package/dist/es5/classes/vector2.js +118 -76
- package/dist/es5/classes/vector2.js.map +1 -1
- package/dist/es5/classes/vector3.js +171 -119
- package/dist/es5/classes/vector3.js.map +1 -1
- package/dist/es5/classes/vector4.js +141 -94
- package/dist/es5/classes/vector4.js.map +1 -1
- package/dist/es5/index.js +34 -34
- package/dist/es5/lib/common.js +56 -30
- package/dist/es5/lib/common.js.map +1 -1
- package/dist/es5/lib/gl-matrix-extras.js +14 -14
- package/dist/es5/lib/gl-matrix-extras.js.map +1 -1
- package/dist/es5/lib/gl-matrix.d.js +2 -0
- package/dist/es5/lib/gl-matrix.d.js.map +1 -0
- package/dist/es5/lib/validators.js +5 -3
- package/dist/es5/lib/validators.js.map +1 -1
- package/dist/esm/classes/base/math-array.js +45 -47
- package/dist/esm/classes/base/math-array.js.map +1 -1
- package/dist/esm/classes/base/matrix.js +0 -11
- package/dist/esm/classes/base/matrix.js.map +1 -1
- package/dist/esm/classes/base/vector.js +0 -10
- package/dist/esm/classes/base/vector.js.map +1 -1
- package/dist/esm/classes/euler.js +61 -48
- package/dist/esm/classes/euler.js.map +1 -1
- package/dist/esm/classes/matrix3.js +55 -33
- package/dist/esm/classes/matrix3.js.map +1 -1
- package/dist/esm/classes/matrix4.js +156 -136
- package/dist/esm/classes/matrix4.js.map +1 -1
- package/dist/esm/classes/pose.js +8 -4
- package/dist/esm/classes/pose.js.map +1 -1
- package/dist/esm/classes/quaternion.js +37 -27
- package/dist/esm/classes/quaternion.js.map +1 -1
- package/dist/esm/classes/spherical-coordinates.js +15 -5
- package/dist/esm/classes/spherical-coordinates.js.map +1 -1
- package/dist/esm/classes/vector2.js.map +1 -1
- package/dist/esm/classes/vector3.js +7 -2
- package/dist/esm/classes/vector3.js.map +1 -1
- package/dist/esm/classes/vector4.js +7 -2
- package/dist/esm/classes/vector4.js.map +1 -1
- package/dist/esm/lib/common.js +8 -8
- package/dist/esm/lib/common.js.map +1 -1
- package/dist/esm/lib/gl-matrix-extras.js.map +1 -1
- package/dist/esm/lib/gl-matrix.d.js +2 -0
- package/dist/esm/lib/gl-matrix.d.js.map +1 -0
- package/dist/esm/lib/validators.js.map +1 -1
- package/dist/lib/common.d.ts +14 -11
- package/dist/lib/common.d.ts.map +1 -1
- package/dist/lib/common.js +10 -23
- package/dist/lib/gl-matrix-extras.d.ts +6 -5
- package/dist/lib/gl-matrix-extras.d.ts.map +1 -1
- package/dist/lib/gl-matrix-extras.js +0 -1
- package/dist/lib/validators.d.ts +5 -4
- package/dist/lib/validators.d.ts.map +1 -1
- package/dist/lib/validators.js +0 -19
- package/package.json +4 -4
- package/src/classes/base/math-array.ts +265 -0
- package/src/classes/base/{matrix.js → matrix.ts} +15 -19
- package/src/classes/base/{vector.js → vector.ts} +47 -54
- package/src/classes/{euler.js → euler.ts} +121 -221
- package/src/classes/matrix3.ts +253 -0
- package/src/classes/matrix4.ts +668 -0
- package/src/classes/{pose.js → pose.ts} +52 -49
- package/src/classes/{quaternion.js → quaternion.ts} +107 -95
- package/src/classes/{spherical-coordinates.js → spherical-coordinates.ts} +84 -54
- package/src/classes/vector2.ts +127 -0
- package/src/classes/{vector3.js → vector3.ts} +43 -55
- package/src/classes/{vector4.js → vector4.ts} +44 -48
- package/src/lib/common.ts +58 -37
- package/src/lib/gl-matrix-extras.ts +26 -5
- package/src/lib/gl-matrix.d.ts +266 -0
- package/src/lib/validators.ts +10 -6
- package/dist/es5/classes/base/math-array.d.js +0 -46
- package/dist/es5/classes/base/math-array.d.js.map +0 -1
- package/dist/es5/classes/base/matrix.d.js +0 -15
- package/dist/es5/classes/base/matrix.d.js.map +0 -1
- package/dist/es5/classes/base/vector.d.js +0 -24
- package/dist/es5/classes/base/vector.d.js.map +0 -1
- package/dist/es5/classes/euler.d.js +0 -45
- package/dist/es5/classes/euler.d.js.map +0 -1
- package/dist/es5/classes/matrix3.d.js +0 -25
- package/dist/es5/classes/matrix3.d.js.map +0 -1
- package/dist/es5/classes/matrix4.d.js +0 -25
- package/dist/es5/classes/matrix4.d.js.map +0 -1
- package/dist/es5/classes/pose.d.js +0 -25
- package/dist/es5/classes/pose.d.js.map +0 -1
- package/dist/es5/classes/quaternion.d.js +0 -27
- package/dist/es5/classes/quaternion.d.js.map +0 -1
- package/dist/es5/classes/spherical-coordinates.d.js +0 -27
- package/dist/es5/classes/spherical-coordinates.d.js.map +0 -1
- package/dist/es5/classes/vector2.d.js +0 -18
- package/dist/es5/classes/vector2.d.js.map +0 -1
- package/dist/es5/classes/vector3.d.js +0 -24
- package/dist/es5/classes/vector3.d.js.map +0 -1
- package/dist/es5/classes/vector4.d.js +0 -25
- package/dist/es5/classes/vector4.d.js.map +0 -1
- package/dist/esm/classes/base/math-array.d.js +0 -36
- package/dist/esm/classes/base/math-array.d.js.map +0 -1
- package/dist/esm/classes/base/matrix.d.js +0 -3
- package/dist/esm/classes/base/matrix.d.js.map +0 -1
- package/dist/esm/classes/base/vector.d.js +0 -13
- package/dist/esm/classes/base/vector.d.js.map +0 -1
- package/dist/esm/classes/euler.d.js +0 -55
- package/dist/esm/classes/euler.d.js.map +0 -1
- package/dist/esm/classes/matrix3.d.js +0 -15
- package/dist/esm/classes/matrix3.d.js.map +0 -1
- package/dist/esm/classes/matrix4.d.js +0 -15
- package/dist/esm/classes/matrix4.d.js.map +0 -1
- package/dist/esm/classes/pose.d.js +0 -18
- package/dist/esm/classes/pose.d.js.map +0 -1
- package/dist/esm/classes/quaternion.d.js +0 -19
- package/dist/esm/classes/quaternion.d.js.map +0 -1
- package/dist/esm/classes/spherical-coordinates.d.js +0 -22
- package/dist/esm/classes/spherical-coordinates.d.js.map +0 -1
- package/dist/esm/classes/vector2.d.js +0 -6
- package/dist/esm/classes/vector2.d.js.map +0 -1
- package/dist/esm/classes/vector3.d.js +0 -13
- package/dist/esm/classes/vector3.d.js.map +0 -1
- package/dist/esm/classes/vector4.d.js +0 -15
- package/dist/esm/classes/vector4.d.js.map +0 -1
- package/src/classes/base/math-array.d.ts +0 -55
- package/src/classes/base/math-array.js +0 -250
- package/src/classes/base/matrix.d.ts +0 -15
- package/src/classes/base/vector.d.ts +0 -45
- package/src/classes/euler.d.ts +0 -92
- package/src/classes/matrix3.d.ts +0 -91
- package/src/classes/matrix3.js +0 -225
- package/src/classes/matrix4.d.ts +0 -161
- package/src/classes/matrix4.js +0 -530
- package/src/classes/pose.d.ts +0 -92
- package/src/classes/quaternion.d.ts +0 -107
- package/src/classes/spherical-coordinates.d.ts +0 -87
- package/src/classes/vector2.d.ts +0 -65
- package/src/classes/vector2.js +0 -122
- package/src/classes/vector3.d.ts +0 -65
- package/src/classes/vector4.d.ts +0 -34
|
@@ -1,36 +1,66 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { NumericArray } from '@math.gl/types';
|
|
2
|
+
import { ConfigurationOptions } from '../../lib/common';
|
|
3
|
+
/** Base class for vectors and matrices */
|
|
4
|
+
export default abstract class MathArray extends Array<number> {
|
|
5
|
+
/** Number of elements (values) in this array */
|
|
6
|
+
abstract get ELEMENTS(): number;
|
|
7
|
+
abstract copy(vector: Readonly<NumericArray>): this;
|
|
8
|
+
abstract fromObject(object: object): this;
|
|
9
|
+
/**
|
|
10
|
+
* Clone the current object
|
|
11
|
+
* @returns a new copy of this object
|
|
12
|
+
*/
|
|
13
|
+
clone(): this;
|
|
14
|
+
fromArray(array: Readonly<NumericArray>, offset?: number): this;
|
|
15
|
+
toArray<TypedArray>(targetArray: TypedArray, offset?: number): TypedArray;
|
|
16
|
+
toArray(targetArray?: number[], offset?: number): NumericArray;
|
|
17
|
+
from(arrayOrObject: Readonly<NumericArray> | object): this;
|
|
18
|
+
to<T extends NumericArray | object>(arrayOrObject: T): T;
|
|
10
19
|
toTarget(target: any): any;
|
|
11
|
-
|
|
20
|
+
/** @deprecated */
|
|
12
21
|
toFloat32Array(): Float32Array;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
22
|
+
toString(): string;
|
|
23
|
+
/** Formats string according to options */
|
|
24
|
+
formatString(opts: ConfigurationOptions): string;
|
|
25
|
+
equals(array: Readonly<NumericArray>): boolean;
|
|
26
|
+
exactEquals(array: Readonly<NumericArray>): boolean;
|
|
27
|
+
/** Negates all values in this object */
|
|
28
|
+
negate(): this;
|
|
29
|
+
/** Linearly interpolates between two values */
|
|
30
|
+
lerp(a: Readonly<NumericArray>, t: number): this;
|
|
31
|
+
lerp(a: Readonly<NumericArray>, b: Readonly<NumericArray>, t: number): this;
|
|
32
|
+
/** Minimal */
|
|
33
|
+
min(vector: Readonly<NumericArray>): this;
|
|
34
|
+
/** Maximal */
|
|
35
|
+
max(vector: Readonly<NumericArray>): this;
|
|
36
|
+
clamp(minVector: Readonly<NumericArray>, maxVector: Readonly<NumericArray>): this;
|
|
37
|
+
add(...vectors: Readonly<NumericArray>[]): this;
|
|
38
|
+
subtract(...vectors: Readonly<NumericArray>[]): this;
|
|
39
|
+
scale(scale: number | Readonly<NumericArray>): this;
|
|
40
|
+
/**
|
|
41
|
+
* Multiplies all elements by `scale`
|
|
42
|
+
* Note: `Matrix4.multiplyByScalar` only scales its 3x3 "minor"
|
|
43
|
+
*/
|
|
44
|
+
multiplyByScalar(scalar: number): this;
|
|
45
|
+
/** Throws an error if array length is incorrect or contains illegal values */
|
|
46
|
+
check(): this;
|
|
47
|
+
/** Returns false if the array length is incorrect or contains illegal values */
|
|
34
48
|
validate(): boolean;
|
|
49
|
+
/** @deprecated */
|
|
50
|
+
sub(a: Readonly<NumericArray>): this;
|
|
51
|
+
/** @deprecated */
|
|
52
|
+
setScalar(a: number): this;
|
|
53
|
+
/** @deprecated */
|
|
54
|
+
addScalar(a: number): this;
|
|
55
|
+
/** @deprecated */
|
|
56
|
+
subScalar(a: number): this;
|
|
57
|
+
/** @deprecated */
|
|
58
|
+
multiplyScalar(scalar: number): this;
|
|
59
|
+
/** @deprecated */
|
|
60
|
+
divideScalar(a: number): this;
|
|
61
|
+
/** @deprecated */
|
|
62
|
+
clampScalar(min: number, max: number): this;
|
|
63
|
+
/** @deprecated */
|
|
64
|
+
get elements(): NumericArray;
|
|
35
65
|
}
|
|
36
66
|
//# sourceMappingURL=math-array.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math-array.d.ts","sourceRoot":"","sources":["../../../src/classes/base/math-array.
|
|
1
|
+
{"version":3,"file":"math-array.d.ts","sourceRoot":"","sources":["../../../src/classes/base/math-array.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +1,14 @@
|
|
|
1
|
-
// Copyright (c) 2017 Uber Technologies, Inc.
|
|
2
|
-
//
|
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
|
8
|
-
// furnished to do so, subject to the following conditions:
|
|
9
|
-
//
|
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
|
11
|
-
// all copies or substantial portions of the Software.
|
|
12
|
-
//
|
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
19
|
-
// THE SOFTWARE.
|
|
20
1
|
import { config, formatValue, equals, isArray } from '../../lib/common';
|
|
21
|
-
|
|
2
|
+
/** Base class for vectors and matrices */
|
|
22
3
|
export default class MathArray extends Array {
|
|
23
|
-
//
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
4
|
+
// Common methods
|
|
5
|
+
/**
|
|
6
|
+
* Clone the current object
|
|
7
|
+
* @returns a new copy of this object
|
|
8
|
+
*/
|
|
28
9
|
clone() {
|
|
29
|
-
// @ts-
|
|
30
|
-
return new this.constructor().copy(this);
|
|
31
|
-
}
|
|
32
|
-
from(arrayOrObject) {
|
|
33
|
-
// @ts-ignore error TS2339: Property 'copy' does not exist on type 'MathArray'.
|
|
34
|
-
return Array.isArray(arrayOrObject) ? this.copy(arrayOrObject) : this.fromObject(arrayOrObject);
|
|
10
|
+
// @ts-expect-error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.
|
|
11
|
+
return new this.constructor().copy(this); // eslint-disable-line
|
|
35
12
|
}
|
|
36
13
|
fromArray(array, offset = 0) {
|
|
37
14
|
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
@@ -39,28 +16,34 @@ export default class MathArray extends Array {
|
|
|
39
16
|
}
|
|
40
17
|
return this.check();
|
|
41
18
|
}
|
|
19
|
+
toArray(targetArray = [], offset = 0) {
|
|
20
|
+
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
21
|
+
targetArray[offset + i] = this[i];
|
|
22
|
+
}
|
|
23
|
+
return targetArray;
|
|
24
|
+
}
|
|
25
|
+
from(arrayOrObject) {
|
|
26
|
+
return Array.isArray(arrayOrObject) ? this.copy(arrayOrObject) : this.fromObject(arrayOrObject);
|
|
27
|
+
}
|
|
42
28
|
to(arrayOrObject) {
|
|
29
|
+
// @ts-ignore
|
|
43
30
|
if (arrayOrObject === this) {
|
|
44
31
|
return this;
|
|
45
32
|
}
|
|
46
|
-
// @ts-
|
|
33
|
+
// @ts-expect-error TS2339: Property 'toObject' does not exist on type 'MathArray'.
|
|
47
34
|
return isArray(arrayOrObject) ? this.toArray(arrayOrObject) : this.toObject(arrayOrObject);
|
|
48
35
|
}
|
|
49
36
|
toTarget(target) {
|
|
50
37
|
return target ? this.to(target) : this;
|
|
51
38
|
}
|
|
52
|
-
|
|
53
|
-
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
54
|
-
array[offset + i] = this[i];
|
|
55
|
-
}
|
|
56
|
-
return array;
|
|
57
|
-
}
|
|
39
|
+
/** @deprecated */
|
|
58
40
|
toFloat32Array() {
|
|
59
41
|
return new Float32Array(this);
|
|
60
42
|
}
|
|
61
43
|
toString() {
|
|
62
44
|
return this.formatString(config);
|
|
63
45
|
}
|
|
46
|
+
/** Formats string according to options */
|
|
64
47
|
formatString(opts) {
|
|
65
48
|
let string = '';
|
|
66
49
|
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
@@ -91,6 +74,7 @@ export default class MathArray extends Array {
|
|
|
91
74
|
return true;
|
|
92
75
|
}
|
|
93
76
|
// Modifiers
|
|
77
|
+
/** Negates all values in this object */
|
|
94
78
|
negate() {
|
|
95
79
|
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
96
80
|
this[i] = -this[i];
|
|
@@ -99,9 +83,7 @@ export default class MathArray extends Array {
|
|
|
99
83
|
}
|
|
100
84
|
lerp(a, b, t) {
|
|
101
85
|
if (t === undefined) {
|
|
102
|
-
|
|
103
|
-
b = a;
|
|
104
|
-
a = this; // eslint-disable-line
|
|
86
|
+
return this.lerp(this, a, b);
|
|
105
87
|
}
|
|
106
88
|
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
107
89
|
const ai = a[i];
|
|
@@ -109,12 +91,14 @@ export default class MathArray extends Array {
|
|
|
109
91
|
}
|
|
110
92
|
return this.check();
|
|
111
93
|
}
|
|
94
|
+
/** Minimal */
|
|
112
95
|
min(vector) {
|
|
113
96
|
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
114
97
|
this[i] = Math.min(vector[i], this[i]);
|
|
115
98
|
}
|
|
116
99
|
return this.check();
|
|
117
100
|
}
|
|
101
|
+
/** Maximal */
|
|
118
102
|
max(vector) {
|
|
119
103
|
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
120
104
|
this[i] = Math.max(vector[i], this[i]);
|
|
@@ -144,34 +128,68 @@ export default class MathArray extends Array {
|
|
|
144
128
|
return this.check();
|
|
145
129
|
}
|
|
146
130
|
scale(scale) {
|
|
147
|
-
if (
|
|
148
|
-
|
|
149
|
-
|
|
131
|
+
if (typeof scale === 'number') {
|
|
132
|
+
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
133
|
+
this[i] *= scale;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
for (let i = 0; i < this.ELEMENTS && i < scale.length; ++i) {
|
|
138
|
+
this[i] *= scale[i];
|
|
139
|
+
}
|
|
150
140
|
}
|
|
141
|
+
return this.check();
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Multiplies all elements by `scale`
|
|
145
|
+
* Note: `Matrix4.multiplyByScalar` only scales its 3x3 "minor"
|
|
146
|
+
*/
|
|
147
|
+
multiplyByScalar(scalar) {
|
|
151
148
|
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
152
|
-
this[i] *=
|
|
149
|
+
this[i] *= scalar;
|
|
153
150
|
}
|
|
154
151
|
return this.check();
|
|
155
152
|
}
|
|
153
|
+
// Debug checks
|
|
154
|
+
/** Throws an error if array length is incorrect or contains illegal values */
|
|
155
|
+
check() {
|
|
156
|
+
if (config.debug && !this.validate()) {
|
|
157
|
+
throw new Error(`math.gl: ${this.constructor.name} some fields set to invalid numbers'`);
|
|
158
|
+
}
|
|
159
|
+
return this;
|
|
160
|
+
}
|
|
161
|
+
/** Returns false if the array length is incorrect or contains illegal values */
|
|
162
|
+
validate() {
|
|
163
|
+
let valid = this.length === this.ELEMENTS;
|
|
164
|
+
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
165
|
+
valid = valid && Number.isFinite(this[i]);
|
|
166
|
+
}
|
|
167
|
+
return valid;
|
|
168
|
+
}
|
|
156
169
|
// three.js compatibility
|
|
170
|
+
/** @deprecated */
|
|
157
171
|
sub(a) {
|
|
158
172
|
return this.subtract(a);
|
|
159
173
|
}
|
|
174
|
+
/** @deprecated */
|
|
160
175
|
setScalar(a) {
|
|
161
176
|
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
162
177
|
this[i] = a;
|
|
163
178
|
}
|
|
164
179
|
return this.check();
|
|
165
180
|
}
|
|
181
|
+
/** @deprecated */
|
|
166
182
|
addScalar(a) {
|
|
167
183
|
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
168
184
|
this[i] += a;
|
|
169
185
|
}
|
|
170
186
|
return this.check();
|
|
171
187
|
}
|
|
188
|
+
/** @deprecated */
|
|
172
189
|
subScalar(a) {
|
|
173
190
|
return this.addScalar(-a);
|
|
174
191
|
}
|
|
192
|
+
/** @deprecated */
|
|
175
193
|
multiplyScalar(scalar) {
|
|
176
194
|
// Multiplies all elements
|
|
177
195
|
// `Matrix4.scale` only scales its 3x3 "minor"
|
|
@@ -180,35 +198,19 @@ export default class MathArray extends Array {
|
|
|
180
198
|
}
|
|
181
199
|
return this.check();
|
|
182
200
|
}
|
|
201
|
+
/** @deprecated */
|
|
183
202
|
divideScalar(a) {
|
|
184
|
-
return this.
|
|
203
|
+
return this.multiplyByScalar(1 / a);
|
|
185
204
|
}
|
|
205
|
+
/** @deprecated */
|
|
186
206
|
clampScalar(min, max) {
|
|
187
207
|
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
188
208
|
this[i] = Math.min(Math.max(this[i], min), max);
|
|
189
209
|
}
|
|
190
210
|
return this.check();
|
|
191
211
|
}
|
|
192
|
-
|
|
193
|
-
multiplyByScalar(scalar) {
|
|
194
|
-
return this.scale(scalar);
|
|
195
|
-
}
|
|
196
|
-
// THREE.js compatibility
|
|
212
|
+
/** @deprecated */
|
|
197
213
|
get elements() {
|
|
198
214
|
return this;
|
|
199
215
|
}
|
|
200
|
-
// Debug checks
|
|
201
|
-
check() {
|
|
202
|
-
if (config.debug && !this.validate()) {
|
|
203
|
-
throw new Error(`math.gl: ${this.constructor.name} some fields set to invalid numbers'`);
|
|
204
|
-
}
|
|
205
|
-
return this;
|
|
206
|
-
}
|
|
207
|
-
validate() {
|
|
208
|
-
let valid = this.length === this.ELEMENTS;
|
|
209
|
-
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
210
|
-
valid = valid && Number.isFinite(this[i]);
|
|
211
|
-
}
|
|
212
|
-
return valid;
|
|
213
|
-
}
|
|
214
216
|
}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { NumericArray } from '@math.gl/types';
|
|
2
|
+
import MathArray from './math-array';
|
|
3
|
+
/** Base class for matrices */
|
|
4
|
+
export default abstract class Matrix extends MathArray {
|
|
5
|
+
abstract get RANK(): number;
|
|
6
|
+
toString(): string;
|
|
7
|
+
getElementIndex(row: number, col: number): number;
|
|
8
|
+
getElement(row: number, col: number): number;
|
|
9
|
+
setElement(row: number, col: number, value: number): this;
|
|
10
|
+
getColumn<NumArrayT>(columnIndex: number, result: NumArrayT): NumArrayT;
|
|
11
|
+
getColumn(columnIndex: number): number[];
|
|
12
|
+
setColumn(columnIndex: number, columnVector: Readonly<NumericArray>): this;
|
|
10
13
|
}
|
|
11
|
-
import MathArray from "./math-array";
|
|
12
14
|
//# sourceMappingURL=matrix.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../../src/classes/base/matrix.
|
|
1
|
+
{"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../../src/classes/base/matrix.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,SAAS,MAAM,cAAc,CAAC;AAIrC,8BAA8B;AAC9B,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,MAAO,SAAQ,SAAS;IACpD,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC;IAa5B,QAAQ,IAAI,MAAM;IAmBlB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAKjD,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAK5C,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIzD,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS;IACvE,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;IAUxC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;CAO3E"}
|
|
@@ -1,17 +1,8 @@
|
|
|
1
1
|
import MathArray from './math-array';
|
|
2
2
|
import { checkNumber } from '../../lib/validators';
|
|
3
3
|
import { config } from '../../lib/common';
|
|
4
|
-
|
|
4
|
+
/** Base class for matrices */
|
|
5
5
|
export default class Matrix extends MathArray {
|
|
6
|
-
// Defined by derived class
|
|
7
|
-
get ELEMENTS() {
|
|
8
|
-
assert(false);
|
|
9
|
-
return 0;
|
|
10
|
-
}
|
|
11
|
-
get RANK() {
|
|
12
|
-
assert(false);
|
|
13
|
-
return 0;
|
|
14
|
-
}
|
|
15
6
|
// fromObject(object) {
|
|
16
7
|
// const array = object.elements;
|
|
17
8
|
// return this.fromRowMajor(array);
|
|
@@ -21,6 +12,7 @@ export default class Matrix extends MathArray {
|
|
|
21
12
|
// this.toRowMajor(array);
|
|
22
13
|
// return object;
|
|
23
14
|
// }
|
|
15
|
+
// TODO better override formatString?
|
|
24
16
|
toString() {
|
|
25
17
|
let string = '[';
|
|
26
18
|
if (config.printRowMajor) {
|
|
@@ -1,32 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
set y(
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import { NumericArray } from '@math.gl/types';
|
|
2
|
+
import MathArray from './math-array';
|
|
3
|
+
/** Base class for vectors with at least 2 elements */
|
|
4
|
+
export default abstract class Vector extends MathArray {
|
|
5
|
+
get x(): number;
|
|
6
|
+
set x(value: number);
|
|
7
|
+
get y(): number;
|
|
8
|
+
set y(value: number);
|
|
9
|
+
/**
|
|
10
|
+
* Returns the length of the vector from the origin to the point described by this vector
|
|
11
|
+
*
|
|
12
|
+
* @note `length` is a reserved word for Arrays, so `v.length()` will return number of elements
|
|
13
|
+
* Instead we provide `len` and `magnitude`
|
|
14
|
+
*/
|
|
11
15
|
len(): number;
|
|
16
|
+
/**
|
|
17
|
+
* Returns the length of the vector from the origin to the point described by this vector
|
|
18
|
+
*/
|
|
12
19
|
magnitude(): number;
|
|
20
|
+
/**
|
|
21
|
+
* Returns the squared length of the vector from the origin to the point described by this vector
|
|
22
|
+
*/
|
|
13
23
|
lengthSquared(): number;
|
|
24
|
+
/**
|
|
25
|
+
* Returns the squared length of the vector from the origin to the point described by this vector
|
|
26
|
+
*/
|
|
14
27
|
magnitudeSquared(): number;
|
|
15
|
-
distance(mathArray:
|
|
16
|
-
distanceSquared(mathArray:
|
|
17
|
-
dot(mathArray:
|
|
18
|
-
normalize():
|
|
19
|
-
multiply(...vectors:
|
|
20
|
-
divide(...vectors:
|
|
28
|
+
distance(mathArray: Readonly<NumericArray>): number;
|
|
29
|
+
distanceSquared(mathArray: Readonly<NumericArray>): number;
|
|
30
|
+
dot(mathArray: Readonly<NumericArray>): number;
|
|
31
|
+
normalize(): this;
|
|
32
|
+
multiply(...vectors: Readonly<NumericArray>[]): this;
|
|
33
|
+
divide(...vectors: Readonly<NumericArray>[]): this;
|
|
21
34
|
lengthSq(): number;
|
|
22
|
-
distanceTo(vector:
|
|
23
|
-
distanceToSquared(vector:
|
|
24
|
-
getComponent(i:
|
|
25
|
-
setComponent(i:
|
|
26
|
-
addVectors(a:
|
|
27
|
-
subVectors(a:
|
|
28
|
-
multiplyVectors(a:
|
|
29
|
-
addScaledVector(a:
|
|
35
|
+
distanceTo(vector: Readonly<NumericArray>): number;
|
|
36
|
+
distanceToSquared(vector: Readonly<NumericArray>): number;
|
|
37
|
+
getComponent(i: number): number;
|
|
38
|
+
setComponent(i: number, value: number): this;
|
|
39
|
+
addVectors(a: Readonly<NumericArray>, b: Readonly<NumericArray>): this;
|
|
40
|
+
subVectors(a: Readonly<NumericArray>, b: Readonly<NumericArray>): this;
|
|
41
|
+
multiplyVectors(a: Readonly<NumericArray>, b: Readonly<NumericArray>): this;
|
|
42
|
+
addScaledVector(a: Readonly<NumericArray>, b: number): this;
|
|
30
43
|
}
|
|
31
|
-
import MathArray from "./math-array";
|
|
32
44
|
//# sourceMappingURL=vector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../../../src/classes/base/vector.
|
|
1
|
+
{"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../../../src/classes/base/vector.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,SAAS,MAAM,cAAc,CAAC;AAIrC,sDAAsD;AACtD,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,MAAO,SAAQ,SAAS;IAGpD,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED;;;;;OAKG;IACH,GAAG,IAAI,MAAM;IAIb;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,aAAa,IAAI,MAAM;IAQvB;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAInD,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAS1D,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAU9C,SAAS,IAAI,IAAI;IAUjB,QAAQ,CAAC,GAAG,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI;IASpD,MAAM,CAAC,GAAG,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI;IAWlD,QAAQ,IAAI,MAAM;IAGlB,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAGlD,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAIzD,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAK/B,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAM5C,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAItE,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAItE,eAAe,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAI3E,eAAe,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;CAI5D"}
|
|
@@ -1,16 +1,8 @@
|
|
|
1
1
|
import MathArray from './math-array';
|
|
2
2
|
import { checkNumber } from '../../lib/validators';
|
|
3
3
|
import assert from '../../lib/assert';
|
|
4
|
+
/** Base class for vectors with at least 2 elements */
|
|
4
5
|
export default class Vector extends MathArray {
|
|
5
|
-
get ELEMENTS() {
|
|
6
|
-
assert(false);
|
|
7
|
-
return 0;
|
|
8
|
-
}
|
|
9
|
-
// VIRTUAL METHODS
|
|
10
|
-
copy(vector) {
|
|
11
|
-
assert(false);
|
|
12
|
-
return this;
|
|
13
|
-
}
|
|
14
6
|
// ACCESSORS
|
|
15
7
|
get x() {
|
|
16
8
|
return this[0];
|
|
@@ -24,14 +16,24 @@ export default class Vector extends MathArray {
|
|
|
24
16
|
set y(value) {
|
|
25
17
|
this[1] = checkNumber(value);
|
|
26
18
|
}
|
|
27
|
-
|
|
28
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Returns the length of the vector from the origin to the point described by this vector
|
|
21
|
+
*
|
|
22
|
+
* @note `length` is a reserved word for Arrays, so `v.length()` will return number of elements
|
|
23
|
+
* Instead we provide `len` and `magnitude`
|
|
24
|
+
*/
|
|
29
25
|
len() {
|
|
30
26
|
return Math.sqrt(this.lengthSquared());
|
|
31
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Returns the length of the vector from the origin to the point described by this vector
|
|
30
|
+
*/
|
|
32
31
|
magnitude() {
|
|
33
32
|
return this.len();
|
|
34
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Returns the squared length of the vector from the origin to the point described by this vector
|
|
36
|
+
*/
|
|
35
37
|
lengthSquared() {
|
|
36
38
|
let length = 0;
|
|
37
39
|
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
@@ -39,6 +41,9 @@ export default class Vector extends MathArray {
|
|
|
39
41
|
}
|
|
40
42
|
return length;
|
|
41
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Returns the squared length of the vector from the origin to the point described by this vector
|
|
46
|
+
*/
|
|
42
47
|
magnitudeSquared() {
|
|
43
48
|
return this.lengthSquared();
|
|
44
49
|
}
|
|
@@ -70,18 +75,6 @@ export default class Vector extends MathArray {
|
|
|
70
75
|
}
|
|
71
76
|
return this.check();
|
|
72
77
|
}
|
|
73
|
-
// negate() {
|
|
74
|
-
// for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
75
|
-
// this[i] = -this[i];
|
|
76
|
-
// }
|
|
77
|
-
// return this.check();
|
|
78
|
-
// }
|
|
79
|
-
// inverse() {
|
|
80
|
-
// for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
81
|
-
// this[i] = 1 / this[i];
|
|
82
|
-
// }
|
|
83
|
-
// return this.check();
|
|
84
|
-
// }
|
|
85
78
|
multiply(...vectors) {
|
|
86
79
|
for (const vector of vectors) {
|
|
87
80
|
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
@@ -127,7 +120,7 @@ export default class Vector extends MathArray {
|
|
|
127
120
|
return this.copy(a).multiply(b);
|
|
128
121
|
}
|
|
129
122
|
addScaledVector(a, b) {
|
|
130
|
-
// @ts-
|
|
123
|
+
// @ts-expect-error error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.
|
|
131
124
|
return this.add(new this.constructor(a).multiplyScalar(b));
|
|
132
125
|
}
|
|
133
126
|
}
|