@math.gl/core 3.5.7 → 3.6.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/base/math-array.d.ts +66 -0
- package/dist/classes/base/math-array.d.ts.map +1 -0
- package/dist/classes/base/math-array.js +216 -0
- package/dist/classes/base/matrix.d.ts +14 -0
- package/dist/classes/base/matrix.d.ts.map +1 -0
- package/dist/classes/base/matrix.js +61 -0
- package/dist/classes/base/vector.d.ts +44 -0
- package/dist/classes/base/vector.d.ts.map +1 -0
- package/dist/classes/base/vector.js +126 -0
- package/dist/classes/euler.d.ts +77 -0
- package/dist/classes/euler.d.ts.map +1 -0
- package/dist/classes/euler.js +485 -0
- package/dist/classes/matrix3.d.ts +60 -0
- package/dist/classes/matrix3.d.ts.map +1 -0
- package/dist/classes/matrix3.js +201 -0
- package/dist/classes/matrix4.d.ts +226 -0
- package/dist/classes/matrix4.d.ts.map +1 -0
- package/dist/classes/matrix4.js +538 -0
- package/dist/classes/pose.d.ts +40 -0
- package/dist/classes/pose.d.ts.map +1 -0
- package/dist/classes/pose.js +109 -0
- package/dist/classes/quaternion.d.ts +63 -0
- package/dist/classes/quaternion.d.ts.map +1 -0
- package/dist/classes/quaternion.js +262 -0
- package/dist/classes/spherical-coordinates.d.ts +60 -0
- package/dist/classes/spherical-coordinates.d.ts.map +1 -0
- package/dist/classes/spherical-coordinates.js +148 -0
- package/dist/classes/vector2.d.ts +55 -0
- package/dist/classes/vector2.d.ts.map +1 -0
- package/dist/classes/vector2.js +111 -0
- package/dist/classes/vector3.d.ts +56 -0
- package/dist/classes/vector3.d.ts.map +1 -0
- package/dist/classes/vector3.js +133 -0
- package/dist/classes/vector4.d.ts +41 -0
- package/dist/classes/vector4.d.ts.map +1 -0
- package/dist/classes/vector4.js +114 -0
- package/dist/es5/classes/base/math-array.js +57 -61
- package/dist/es5/classes/base/math-array.js.map +1 -1
- package/dist/es5/classes/base/matrix.js +0 -14
- package/dist/es5/classes/base/matrix.js.map +1 -1
- package/dist/es5/classes/base/vector.js +0 -12
- package/dist/es5/classes/base/vector.js.map +1 -1
- package/dist/es5/classes/euler.js +63 -49
- package/dist/es5/classes/euler.js.map +1 -1
- package/dist/es5/classes/matrix3.js +60 -33
- package/dist/es5/classes/matrix3.js.map +1 -1
- package/dist/es5/classes/matrix4.js +167 -164
- package/dist/es5/classes/matrix4.js.map +1 -1
- package/dist/es5/classes/pose.js +7 -6
- package/dist/es5/classes/pose.js.map +1 -1
- package/dist/es5/classes/quaternion.js +44 -36
- package/dist/es5/classes/quaternion.js.map +1 -1
- package/dist/es5/classes/spherical-coordinates.js +12 -8
- package/dist/es5/classes/spherical-coordinates.js.map +1 -1
- package/dist/es5/classes/vector2.js.map +1 -1
- package/dist/es5/classes/vector3.js +7 -2
- package/dist/es5/classes/vector3.js.map +1 -1
- package/dist/es5/classes/vector4.js +7 -2
- package/dist/es5/classes/vector4.js.map +1 -1
- package/dist/es5/docs/README.md +0 -0
- package/dist/es5/index.js +71 -89
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/assert.js.map +1 -1
- package/dist/es5/lib/common.js +40 -43
- package/dist/es5/lib/common.js.map +1 -1
- 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/math-utils.js.map +1 -1
- 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/docs/README.md +0 -0
- package/dist/esm/index.js +2 -13
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/assert.js.map +1 -1
- package/dist/esm/lib/common.js +41 -44
- 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/math-utils.js.map +1 -1
- package/dist/esm/lib/validators.js.map +1 -1
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/lib/assert.d.ts +2 -0
- package/dist/lib/assert.d.ts.map +1 -0
- package/dist/lib/assert.js +5 -0
- package/dist/lib/common.d.ts +93 -0
- package/dist/lib/common.d.ts.map +1 -0
- package/dist/lib/common.js +210 -0
- package/dist/lib/gl-matrix-extras.d.ts +7 -0
- package/dist/lib/gl-matrix-extras.d.ts.map +1 -0
- package/dist/lib/gl-matrix-extras.js +49 -0
- package/dist/lib/math-utils.d.ts +28 -0
- package/dist/lib/math-utils.d.ts.map +1 -0
- package/dist/lib/math-utils.js +28 -0
- package/dist/lib/validators.d.ts +6 -0
- package/dist/lib/validators.d.ts.map +1 -0
- package/dist/lib/validators.js +33 -0
- package/package.json +5 -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/docs/README.md +0 -0
- package/{dist/esm/index.d.ts → src/index.ts} +32 -34
- package/src/lib/{assert.js → assert.ts} +1 -1
- package/src/lib/common.ts +304 -0
- package/src/lib/{gl-matrix-extras.js → gl-matrix-extras.ts} +26 -5
- package/src/lib/gl-matrix.d.ts +266 -0
- package/src/lib/{math-utils.js → math-utils.ts} +0 -0
- package/src/lib/{validators.js → validators.ts} +10 -6
- package/dist/es5/addons/polygon.d.ts +0 -17
- package/dist/es5/classes/base/math-array.d.ts +0 -56
- package/dist/es5/classes/base/matrix.d.ts +0 -15
- package/dist/es5/classes/base/vector.d.ts +0 -45
- package/dist/es5/classes/euler.d.ts +0 -92
- package/dist/es5/classes/matrix3.d.ts +0 -91
- package/dist/es5/classes/matrix4.d.ts +0 -161
- package/dist/es5/classes/pose.d.ts +0 -92
- package/dist/es5/classes/quaternion.d.ts +0 -107
- package/dist/es5/classes/spherical-coordinates.d.ts +0 -87
- package/dist/es5/classes/vector2.d.ts +0 -65
- package/dist/es5/classes/vector3.d.ts +0 -65
- package/dist/es5/classes/vector4.d.ts +0 -34
- package/dist/es5/index.d.ts +0 -54
- package/dist/es5/lib/common.d.ts +0 -80
- package/dist/esm/addons/polygon.d.ts +0 -17
- package/dist/esm/classes/base/math-array.d.ts +0 -56
- package/dist/esm/classes/base/matrix.d.ts +0 -15
- package/dist/esm/classes/base/vector.d.ts +0 -45
- package/dist/esm/classes/euler.d.ts +0 -92
- package/dist/esm/classes/matrix3.d.ts +0 -91
- package/dist/esm/classes/matrix4.d.ts +0 -161
- package/dist/esm/classes/pose.d.ts +0 -92
- package/dist/esm/classes/quaternion.d.ts +0 -107
- package/dist/esm/classes/spherical-coordinates.d.ts +0 -87
- package/dist/esm/classes/vector2.d.ts +0 -65
- package/dist/esm/classes/vector3.d.ts +0 -65
- package/dist/esm/classes/vector4.d.ts +0 -34
- package/dist/esm/lib/common.d.ts +0 -80
- package/src/addons/polygon.d.ts +0 -17
- package/src/classes/base/math-array.d.ts +0 -56
- 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
- package/src/index.d.ts +0 -54
- package/src/index.js +0 -86
- package/src/lib/common.d.ts +0 -80
- package/src/lib/common.js +0 -222
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
// Copyright (c) 2017 Uber Technologies, Inc.
|
|
2
|
+
// MIT License
|
|
3
|
+
import Vector from './base/vector';
|
|
4
|
+
import { config, isArray } from '../lib/common';
|
|
5
|
+
import { checkNumber } from '../lib/validators';
|
|
6
|
+
import * as vec2 from 'gl-matrix/vec2';
|
|
7
|
+
/* eslint-disable camelcase */
|
|
8
|
+
import { vec2_transformMat4AsVector } from '../lib/gl-matrix-extras';
|
|
9
|
+
/**
|
|
10
|
+
* Two-element vector class.
|
|
11
|
+
* Subclass of Array<number>
|
|
12
|
+
*/
|
|
13
|
+
export default class Vector2 extends Vector {
|
|
14
|
+
// Creates a new, empty vec2
|
|
15
|
+
constructor(x = 0, y = 0) {
|
|
16
|
+
// PERF NOTE: initialize elements as double precision numbers
|
|
17
|
+
super(2); // -0, -0);
|
|
18
|
+
if (isArray(x) && arguments.length === 1) {
|
|
19
|
+
this.copy(x);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
if (config.debug) {
|
|
23
|
+
checkNumber(x);
|
|
24
|
+
checkNumber(y);
|
|
25
|
+
}
|
|
26
|
+
this[0] = x;
|
|
27
|
+
this[1] = y;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
set(x, y) {
|
|
31
|
+
this[0] = x;
|
|
32
|
+
this[1] = y;
|
|
33
|
+
return this.check();
|
|
34
|
+
}
|
|
35
|
+
copy(array) {
|
|
36
|
+
this[0] = array[0];
|
|
37
|
+
this[1] = array[1];
|
|
38
|
+
return this.check();
|
|
39
|
+
}
|
|
40
|
+
fromObject(object) {
|
|
41
|
+
if (config.debug) {
|
|
42
|
+
checkNumber(object.x);
|
|
43
|
+
checkNumber(object.y);
|
|
44
|
+
}
|
|
45
|
+
this[0] = object.x;
|
|
46
|
+
this[1] = object.y;
|
|
47
|
+
return this.check();
|
|
48
|
+
}
|
|
49
|
+
toObject(object) {
|
|
50
|
+
object.x = this[0];
|
|
51
|
+
object.y = this[1];
|
|
52
|
+
return object;
|
|
53
|
+
}
|
|
54
|
+
// Getters/setters
|
|
55
|
+
get ELEMENTS() {
|
|
56
|
+
return 2;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Returns angle from x axis
|
|
60
|
+
* @returns
|
|
61
|
+
*/
|
|
62
|
+
horizontalAngle() {
|
|
63
|
+
return Math.atan2(this.y, this.x);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Returns angle from y axis
|
|
67
|
+
* @returns
|
|
68
|
+
*/
|
|
69
|
+
verticalAngle() {
|
|
70
|
+
return Math.atan2(this.x, this.y);
|
|
71
|
+
}
|
|
72
|
+
// Transforms
|
|
73
|
+
/**
|
|
74
|
+
* Transforms as point
|
|
75
|
+
* @param matrix4
|
|
76
|
+
* @returns
|
|
77
|
+
*/
|
|
78
|
+
transform(matrix4) {
|
|
79
|
+
return this.transformAsPoint(matrix4);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* transforms as point (4th component is implicitly 1)
|
|
83
|
+
* @param matrix4
|
|
84
|
+
* @returns
|
|
85
|
+
*/
|
|
86
|
+
transformAsPoint(matrix4) {
|
|
87
|
+
vec2.transformMat4(this, this, matrix4);
|
|
88
|
+
return this.check();
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* transforms as vector (4th component is implicitly 0, ignores translation. slightly faster)
|
|
92
|
+
* @param matrix4
|
|
93
|
+
* @returns
|
|
94
|
+
*/
|
|
95
|
+
transformAsVector(matrix4) {
|
|
96
|
+
vec2_transformMat4AsVector(this, this, matrix4);
|
|
97
|
+
return this.check();
|
|
98
|
+
}
|
|
99
|
+
transformByMatrix3(matrix3) {
|
|
100
|
+
vec2.transformMat3(this, this, matrix3);
|
|
101
|
+
return this.check();
|
|
102
|
+
}
|
|
103
|
+
transformByMatrix2x3(matrix2x3) {
|
|
104
|
+
vec2.transformMat2d(this, this, matrix2x3);
|
|
105
|
+
return this.check();
|
|
106
|
+
}
|
|
107
|
+
transformByMatrix2(matrix2) {
|
|
108
|
+
vec2.transformMat2(this, this, matrix2);
|
|
109
|
+
return this.check();
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { NumericArray } from '@math.gl/types';
|
|
2
|
+
import Vector from './base/vector';
|
|
3
|
+
/**
|
|
4
|
+
* Three-element vector class.
|
|
5
|
+
* Subclass of Array<number>
|
|
6
|
+
*/
|
|
7
|
+
export default class Vector3 extends Vector {
|
|
8
|
+
static get ZERO(): Vector3;
|
|
9
|
+
/**
|
|
10
|
+
* @class
|
|
11
|
+
* @param x
|
|
12
|
+
* @param y
|
|
13
|
+
* @param z
|
|
14
|
+
*/
|
|
15
|
+
constructor(x?: number | Readonly<NumericArray>, y?: number, z?: number);
|
|
16
|
+
set(x: number, y: number, z: number): this;
|
|
17
|
+
copy(array: Readonly<NumericArray>): this;
|
|
18
|
+
fromObject(object: {
|
|
19
|
+
x: number;
|
|
20
|
+
y: number;
|
|
21
|
+
z: number;
|
|
22
|
+
}): this;
|
|
23
|
+
toObject(object: {
|
|
24
|
+
x?: number;
|
|
25
|
+
y?: number;
|
|
26
|
+
z?: number;
|
|
27
|
+
}): {
|
|
28
|
+
x: number;
|
|
29
|
+
y: number;
|
|
30
|
+
z: number;
|
|
31
|
+
};
|
|
32
|
+
get ELEMENTS(): number;
|
|
33
|
+
get z(): number;
|
|
34
|
+
set z(value: number);
|
|
35
|
+
angle(vector: Readonly<NumericArray>): number;
|
|
36
|
+
cross(vector: Readonly<NumericArray>): this;
|
|
37
|
+
rotateX({ radians, origin }: {
|
|
38
|
+
radians: number;
|
|
39
|
+
origin?: Readonly<NumericArray>;
|
|
40
|
+
}): this;
|
|
41
|
+
rotateY({ radians, origin }: {
|
|
42
|
+
radians: number;
|
|
43
|
+
origin?: Readonly<NumericArray>;
|
|
44
|
+
}): this;
|
|
45
|
+
rotateZ({ radians, origin }: {
|
|
46
|
+
radians: number;
|
|
47
|
+
origin?: Readonly<NumericArray>;
|
|
48
|
+
}): this;
|
|
49
|
+
transform(matrix4: Readonly<NumericArray>): this;
|
|
50
|
+
transformAsPoint(matrix4: Readonly<NumericArray>): this;
|
|
51
|
+
transformAsVector(matrix4: Readonly<NumericArray>): this;
|
|
52
|
+
transformByMatrix3(matrix3: Readonly<NumericArray>): this;
|
|
53
|
+
transformByMatrix2(matrix2: Readonly<NumericArray>): this;
|
|
54
|
+
transformByQuaternion(quaternion: Readonly<NumericArray>): this;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=vector3.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector3.d.ts","sourceRoot":"","sources":["../../src/classes/vector3.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,MAAM,MAAM,eAAe,CAAC;AAWnC;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,MAAM;IACzC,MAAM,KAAK,IAAI,IAAI,OAAO,CAMzB;IAED;;;;;OAKG;gBACS,CAAC,GAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAK,EAAE,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAU;IAmBhF,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAO1C,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAOzC,UAAU,CAAC,MAAM,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI;IAY3D,QAAQ,CAAC,MAAM,EAAE;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC;IASzF,IAAI,QAAQ,IAAI,MAAM,CAErB;IACD,IAAI,CAAC,IAAI,MAAM,CAEd;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAID,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAM7C,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAK3C,OAAO,CAAC,EAAC,OAAO,EAAE,MAAe,EAAC,EAAE;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;KAAC,GAAG,IAAI;IAK7F,OAAO,CAAC,EAAC,OAAO,EAAE,MAAe,EAAC,EAAE;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;KAAC,GAAG,IAAI;IAK7F,OAAO,CAAC,EAAC,OAAO,EAAE,MAAe,EAAC,EAAE;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;KAAC,GAAG,IAAI;IAQ7F,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKhD,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAMvD,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKxD,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKzD,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKzD,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;CAIhE"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import Vector from './base/vector';
|
|
2
|
+
import { config, isArray } from '../lib/common';
|
|
3
|
+
import { checkNumber } from '../lib/validators';
|
|
4
|
+
import * as vec3 from 'gl-matrix/vec3';
|
|
5
|
+
/* eslint-disable camelcase */
|
|
6
|
+
import { vec3_transformMat2, vec3_transformMat4AsVector } from '../lib/gl-matrix-extras';
|
|
7
|
+
const ORIGIN = [0, 0, 0];
|
|
8
|
+
let ZERO;
|
|
9
|
+
/**
|
|
10
|
+
* Three-element vector class.
|
|
11
|
+
* Subclass of Array<number>
|
|
12
|
+
*/
|
|
13
|
+
export default class Vector3 extends Vector {
|
|
14
|
+
static get ZERO() {
|
|
15
|
+
if (!ZERO) {
|
|
16
|
+
ZERO = new Vector3(0, 0, 0);
|
|
17
|
+
Object.freeze(ZERO);
|
|
18
|
+
}
|
|
19
|
+
return ZERO;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* @class
|
|
23
|
+
* @param x
|
|
24
|
+
* @param y
|
|
25
|
+
* @param z
|
|
26
|
+
*/
|
|
27
|
+
constructor(x = 0, y = 0, z = 0) {
|
|
28
|
+
// PERF NOTE: initialize elements as double precision numbers
|
|
29
|
+
super(-0, -0, -0);
|
|
30
|
+
if (arguments.length === 1 && isArray(x)) {
|
|
31
|
+
this.copy(x);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
// this.set(x, y, z);
|
|
35
|
+
if (config.debug) {
|
|
36
|
+
checkNumber(x);
|
|
37
|
+
checkNumber(y);
|
|
38
|
+
checkNumber(z);
|
|
39
|
+
}
|
|
40
|
+
// @ts-expect-error TS2412: Property '0' of type 'number | [number, number, number]' is not assignable to numeric index type 'number'
|
|
41
|
+
this[0] = x;
|
|
42
|
+
this[1] = y;
|
|
43
|
+
this[2] = z;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
set(x, y, z) {
|
|
47
|
+
this[0] = x;
|
|
48
|
+
this[1] = y;
|
|
49
|
+
this[2] = z;
|
|
50
|
+
return this.check();
|
|
51
|
+
}
|
|
52
|
+
copy(array) {
|
|
53
|
+
this[0] = array[0];
|
|
54
|
+
this[1] = array[1];
|
|
55
|
+
this[2] = array[2];
|
|
56
|
+
return this.check();
|
|
57
|
+
}
|
|
58
|
+
fromObject(object) {
|
|
59
|
+
if (config.debug) {
|
|
60
|
+
checkNumber(object.x);
|
|
61
|
+
checkNumber(object.y);
|
|
62
|
+
checkNumber(object.z);
|
|
63
|
+
}
|
|
64
|
+
this[0] = object.x;
|
|
65
|
+
this[1] = object.y;
|
|
66
|
+
this[2] = object.z;
|
|
67
|
+
return this.check();
|
|
68
|
+
}
|
|
69
|
+
toObject(object) {
|
|
70
|
+
object.x = this[0];
|
|
71
|
+
object.y = this[1];
|
|
72
|
+
object.z = this[2];
|
|
73
|
+
return object;
|
|
74
|
+
}
|
|
75
|
+
// Getters/setters
|
|
76
|
+
get ELEMENTS() {
|
|
77
|
+
return 3;
|
|
78
|
+
}
|
|
79
|
+
get z() {
|
|
80
|
+
return this[2];
|
|
81
|
+
}
|
|
82
|
+
set z(value) {
|
|
83
|
+
this[2] = checkNumber(value);
|
|
84
|
+
}
|
|
85
|
+
// ACCESSORS
|
|
86
|
+
angle(vector) {
|
|
87
|
+
return vec3.angle(this, vector);
|
|
88
|
+
}
|
|
89
|
+
// MODIFIERS
|
|
90
|
+
cross(vector) {
|
|
91
|
+
vec3.cross(this, this, vector);
|
|
92
|
+
return this.check();
|
|
93
|
+
}
|
|
94
|
+
rotateX({ radians, origin = ORIGIN }) {
|
|
95
|
+
vec3.rotateX(this, this, origin, radians);
|
|
96
|
+
return this.check();
|
|
97
|
+
}
|
|
98
|
+
rotateY({ radians, origin = ORIGIN }) {
|
|
99
|
+
vec3.rotateY(this, this, origin, radians);
|
|
100
|
+
return this.check();
|
|
101
|
+
}
|
|
102
|
+
rotateZ({ radians, origin = ORIGIN }) {
|
|
103
|
+
vec3.rotateZ(this, this, origin, radians);
|
|
104
|
+
return this.check();
|
|
105
|
+
}
|
|
106
|
+
// Transforms
|
|
107
|
+
// transforms as point (4th component is implicitly 1)
|
|
108
|
+
transform(matrix4) {
|
|
109
|
+
return this.transformAsPoint(matrix4);
|
|
110
|
+
}
|
|
111
|
+
// transforms as point (4th component is implicitly 1)
|
|
112
|
+
transformAsPoint(matrix4) {
|
|
113
|
+
vec3.transformMat4(this, this, matrix4);
|
|
114
|
+
return this.check();
|
|
115
|
+
}
|
|
116
|
+
// transforms as vector (4th component is implicitly 0, ignores translation. slightly faster)
|
|
117
|
+
transformAsVector(matrix4) {
|
|
118
|
+
vec3_transformMat4AsVector(this, this, matrix4);
|
|
119
|
+
return this.check();
|
|
120
|
+
}
|
|
121
|
+
transformByMatrix3(matrix3) {
|
|
122
|
+
vec3.transformMat3(this, this, matrix3);
|
|
123
|
+
return this.check();
|
|
124
|
+
}
|
|
125
|
+
transformByMatrix2(matrix2) {
|
|
126
|
+
vec3_transformMat2(this, this, matrix2);
|
|
127
|
+
return this.check();
|
|
128
|
+
}
|
|
129
|
+
transformByQuaternion(quaternion) {
|
|
130
|
+
vec3.transformQuat(this, this, quaternion);
|
|
131
|
+
return this.check();
|
|
132
|
+
}
|
|
133
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import Vector from './base/vector';
|
|
2
|
+
import { NumericArray } from '@math.gl/types';
|
|
3
|
+
import type Matrix4 from './matrix4';
|
|
4
|
+
/**
|
|
5
|
+
* Four-element vector class.
|
|
6
|
+
* Subclass of Array<number>
|
|
7
|
+
*/
|
|
8
|
+
export default class Vector4 extends Vector {
|
|
9
|
+
static get ZERO(): Vector4;
|
|
10
|
+
constructor(x?: number | Readonly<NumericArray>, y?: number, z?: number, w?: number);
|
|
11
|
+
set(x: number, y: number, z: number, w: number): this;
|
|
12
|
+
copy(array: Readonly<NumericArray>): this;
|
|
13
|
+
fromObject(object: {
|
|
14
|
+
x: number;
|
|
15
|
+
y: number;
|
|
16
|
+
z: number;
|
|
17
|
+
w: number;
|
|
18
|
+
}): this;
|
|
19
|
+
toObject(object: {
|
|
20
|
+
x?: number;
|
|
21
|
+
y?: number;
|
|
22
|
+
z?: number;
|
|
23
|
+
w?: number;
|
|
24
|
+
}): {
|
|
25
|
+
x: number;
|
|
26
|
+
y: number;
|
|
27
|
+
z: number;
|
|
28
|
+
w: number;
|
|
29
|
+
};
|
|
30
|
+
get ELEMENTS(): number;
|
|
31
|
+
get z(): number;
|
|
32
|
+
set z(value: number);
|
|
33
|
+
get w(): number;
|
|
34
|
+
set w(value: number);
|
|
35
|
+
transform(matrix4: Readonly<NumericArray>): this;
|
|
36
|
+
transformByMatrix3(matrix3: Readonly<NumericArray>): this;
|
|
37
|
+
transformByMatrix2(matrix2: Readonly<NumericArray>): this;
|
|
38
|
+
transformByQuaternion(quaternion: Readonly<NumericArray>): this;
|
|
39
|
+
applyMatrix4(m: Matrix4): this;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=vector4.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector4.d.ts","sourceRoot":"","sources":["../../src/classes/vector4.ts"],"names":[],"mappings":"AAGA,OAAO,MAAM,MAAM,eAAe,CAAC;AAMnC,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAIrC;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,MAAM;IACzC,MAAM,KAAK,IAAI,IAAI,OAAO,CAMzB;gBAEW,CAAC,GAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAK,EAAE,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAU;IAoB/F,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAQrD,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAQzC,UAAU,CAAC,MAAM,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI;IActE,QAAQ,CAAC,MAAM,EAAE;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG;QAClE,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX;IAeD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IACD,IAAI,CAAC,IAAI,MAAM,CAEd;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKhD,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKzD,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKzD,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAM/D,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;CAI/B"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
// Copyright (c) 2017 Uber Technologies, Inc.
|
|
2
|
+
// MIT License
|
|
3
|
+
import Vector from './base/vector';
|
|
4
|
+
import { config, isArray } from '../lib/common';
|
|
5
|
+
import { checkNumber } from '../lib/validators';
|
|
6
|
+
import * as vec4 from 'gl-matrix/vec3';
|
|
7
|
+
/* eslint-disable camelcase */
|
|
8
|
+
import { vec4_transformMat2, vec4_transformMat3 } from '../lib/gl-matrix-extras';
|
|
9
|
+
let ZERO;
|
|
10
|
+
/**
|
|
11
|
+
* Four-element vector class.
|
|
12
|
+
* Subclass of Array<number>
|
|
13
|
+
*/
|
|
14
|
+
export default class Vector4 extends Vector {
|
|
15
|
+
static get ZERO() {
|
|
16
|
+
if (!ZERO) {
|
|
17
|
+
ZERO = new Vector4(0, 0, 0, 0);
|
|
18
|
+
Object.freeze(ZERO);
|
|
19
|
+
}
|
|
20
|
+
return ZERO;
|
|
21
|
+
}
|
|
22
|
+
constructor(x = 0, y = 0, z = 0, w = 0) {
|
|
23
|
+
// PERF NOTE: initialize elements as double precision numbers
|
|
24
|
+
super(-0, -0, -0, -0);
|
|
25
|
+
if (isArray(x) && arguments.length === 1) {
|
|
26
|
+
this.copy(x);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
// this.set(x, y, z, w);
|
|
30
|
+
if (config.debug) {
|
|
31
|
+
checkNumber(x);
|
|
32
|
+
checkNumber(y);
|
|
33
|
+
checkNumber(z);
|
|
34
|
+
checkNumber(w);
|
|
35
|
+
}
|
|
36
|
+
this[0] = x;
|
|
37
|
+
this[1] = y;
|
|
38
|
+
this[2] = z;
|
|
39
|
+
this[3] = w;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
set(x, y, z, w) {
|
|
43
|
+
this[0] = x;
|
|
44
|
+
this[1] = y;
|
|
45
|
+
this[2] = z;
|
|
46
|
+
this[3] = w;
|
|
47
|
+
return this.check();
|
|
48
|
+
}
|
|
49
|
+
copy(array) {
|
|
50
|
+
this[0] = array[0];
|
|
51
|
+
this[1] = array[1];
|
|
52
|
+
this[2] = array[2];
|
|
53
|
+
this[3] = array[3];
|
|
54
|
+
return this.check();
|
|
55
|
+
}
|
|
56
|
+
fromObject(object) {
|
|
57
|
+
if (config.debug) {
|
|
58
|
+
checkNumber(object.x);
|
|
59
|
+
checkNumber(object.y);
|
|
60
|
+
checkNumber(object.z);
|
|
61
|
+
checkNumber(object.w);
|
|
62
|
+
}
|
|
63
|
+
this[0] = object.x;
|
|
64
|
+
this[1] = object.y;
|
|
65
|
+
this[2] = object.z;
|
|
66
|
+
this[3] = object.w;
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
toObject(object) {
|
|
70
|
+
object.x = this[0];
|
|
71
|
+
object.y = this[1];
|
|
72
|
+
object.z = this[2];
|
|
73
|
+
object.w = this[3];
|
|
74
|
+
return object;
|
|
75
|
+
}
|
|
76
|
+
// Getters/setters
|
|
77
|
+
/* eslint-disable no-multi-spaces, brace-style, no-return-assign */
|
|
78
|
+
get ELEMENTS() {
|
|
79
|
+
return 4;
|
|
80
|
+
}
|
|
81
|
+
get z() {
|
|
82
|
+
return this[2];
|
|
83
|
+
}
|
|
84
|
+
set z(value) {
|
|
85
|
+
this[2] = checkNumber(value);
|
|
86
|
+
}
|
|
87
|
+
get w() {
|
|
88
|
+
return this[3];
|
|
89
|
+
}
|
|
90
|
+
set w(value) {
|
|
91
|
+
this[3] = checkNumber(value);
|
|
92
|
+
}
|
|
93
|
+
transform(matrix4) {
|
|
94
|
+
vec4.transformMat4(this, this, matrix4);
|
|
95
|
+
return this.check();
|
|
96
|
+
}
|
|
97
|
+
transformByMatrix3(matrix3) {
|
|
98
|
+
vec4_transformMat3(this, this, matrix3);
|
|
99
|
+
return this.check();
|
|
100
|
+
}
|
|
101
|
+
transformByMatrix2(matrix2) {
|
|
102
|
+
vec4_transformMat2(this, this, matrix2);
|
|
103
|
+
return this.check();
|
|
104
|
+
}
|
|
105
|
+
transformByQuaternion(quaternion) {
|
|
106
|
+
vec4.transformQuat(this, this, quaternion);
|
|
107
|
+
return this.check();
|
|
108
|
+
}
|
|
109
|
+
// three.js compatibility
|
|
110
|
+
applyMatrix4(m) {
|
|
111
|
+
m.transform(this, this);
|
|
112
|
+
return this;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
@@ -19,8 +19,6 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
|
19
19
|
|
|
20
20
|
var _common = require("../../lib/common");
|
|
21
21
|
|
|
22
|
-
var _assert = _interopRequireDefault(require("../../lib/assert"));
|
|
23
|
-
|
|
24
22
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
25
23
|
|
|
26
24
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
@@ -61,21 +59,10 @@ var MathArray = function (_extendableBuiltin2) {
|
|
|
61
59
|
}
|
|
62
60
|
|
|
63
61
|
(0, _createClass2.default)(MathArray, [{
|
|
64
|
-
key: "ELEMENTS",
|
|
65
|
-
get: function get() {
|
|
66
|
-
(0, _assert.default)(false);
|
|
67
|
-
return 0;
|
|
68
|
-
}
|
|
69
|
-
}, {
|
|
70
62
|
key: "clone",
|
|
71
63
|
value: function clone() {
|
|
72
64
|
return new this.constructor().copy(this);
|
|
73
65
|
}
|
|
74
|
-
}, {
|
|
75
|
-
key: "from",
|
|
76
|
-
value: function from(arrayOrObject) {
|
|
77
|
-
return Array.isArray(arrayOrObject) ? this.copy(arrayOrObject) : this.fromObject(arrayOrObject);
|
|
78
|
-
}
|
|
79
66
|
}, {
|
|
80
67
|
key: "fromArray",
|
|
81
68
|
value: function fromArray(array) {
|
|
@@ -87,6 +74,23 @@ var MathArray = function (_extendableBuiltin2) {
|
|
|
87
74
|
|
|
88
75
|
return this.check();
|
|
89
76
|
}
|
|
77
|
+
}, {
|
|
78
|
+
key: "toArray",
|
|
79
|
+
value: function toArray() {
|
|
80
|
+
var targetArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
81
|
+
var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
82
|
+
|
|
83
|
+
for (var i = 0; i < this.ELEMENTS; ++i) {
|
|
84
|
+
targetArray[offset + i] = this[i];
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return targetArray;
|
|
88
|
+
}
|
|
89
|
+
}, {
|
|
90
|
+
key: "from",
|
|
91
|
+
value: function from(arrayOrObject) {
|
|
92
|
+
return Array.isArray(arrayOrObject) ? this.copy(arrayOrObject) : this.fromObject(arrayOrObject);
|
|
93
|
+
}
|
|
90
94
|
}, {
|
|
91
95
|
key: "to",
|
|
92
96
|
value: function to(arrayOrObject) {
|
|
@@ -101,18 +105,6 @@ var MathArray = function (_extendableBuiltin2) {
|
|
|
101
105
|
value: function toTarget(target) {
|
|
102
106
|
return target ? this.to(target) : this;
|
|
103
107
|
}
|
|
104
|
-
}, {
|
|
105
|
-
key: "toArray",
|
|
106
|
-
value: function toArray() {
|
|
107
|
-
var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
108
|
-
var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
109
|
-
|
|
110
|
-
for (var i = 0; i < this.ELEMENTS; ++i) {
|
|
111
|
-
array[offset + i] = this[i];
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
return array;
|
|
115
|
-
}
|
|
116
108
|
}, {
|
|
117
109
|
key: "toFloat32Array",
|
|
118
110
|
value: function toFloat32Array() {
|
|
@@ -177,9 +169,7 @@ var MathArray = function (_extendableBuiltin2) {
|
|
|
177
169
|
key: "lerp",
|
|
178
170
|
value: function lerp(a, b, t) {
|
|
179
171
|
if (t === undefined) {
|
|
180
|
-
|
|
181
|
-
b = a;
|
|
182
|
-
a = this;
|
|
172
|
+
return this.lerp(this, a, b);
|
|
183
173
|
}
|
|
184
174
|
|
|
185
175
|
for (var i = 0; i < this.ELEMENTS; ++i) {
|
|
@@ -224,10 +214,10 @@ var MathArray = function (_extendableBuiltin2) {
|
|
|
224
214
|
}
|
|
225
215
|
|
|
226
216
|
for (var _i = 0, _vectors = vectors; _i < _vectors.length; _i++) {
|
|
227
|
-
var
|
|
217
|
+
var _vector = _vectors[_i];
|
|
228
218
|
|
|
229
219
|
for (var i = 0; i < this.ELEMENTS; ++i) {
|
|
230
|
-
this[i] +=
|
|
220
|
+
this[i] += _vector[i];
|
|
231
221
|
}
|
|
232
222
|
}
|
|
233
223
|
|
|
@@ -241,10 +231,10 @@ var MathArray = function (_extendableBuiltin2) {
|
|
|
241
231
|
}
|
|
242
232
|
|
|
243
233
|
for (var _i2 = 0, _vectors2 = vectors; _i2 < _vectors2.length; _i2++) {
|
|
244
|
-
var
|
|
234
|
+
var _vector2 = _vectors2[_i2];
|
|
245
235
|
|
|
246
236
|
for (var i = 0; i < this.ELEMENTS; ++i) {
|
|
247
|
-
this[i] -=
|
|
237
|
+
this[i] -= _vector2[i];
|
|
248
238
|
}
|
|
249
239
|
}
|
|
250
240
|
|
|
@@ -253,16 +243,47 @@ var MathArray = function (_extendableBuiltin2) {
|
|
|
253
243
|
}, {
|
|
254
244
|
key: "scale",
|
|
255
245
|
value: function scale(_scale) {
|
|
256
|
-
if (
|
|
257
|
-
|
|
246
|
+
if (typeof _scale === 'number') {
|
|
247
|
+
for (var i = 0; i < this.ELEMENTS; ++i) {
|
|
248
|
+
this[i] *= _scale;
|
|
249
|
+
}
|
|
250
|
+
} else {
|
|
251
|
+
for (var _i3 = 0; _i3 < this.ELEMENTS && _i3 < _scale.length; ++_i3) {
|
|
252
|
+
this[_i3] *= _scale[_i3];
|
|
253
|
+
}
|
|
258
254
|
}
|
|
259
255
|
|
|
256
|
+
return this.check();
|
|
257
|
+
}
|
|
258
|
+
}, {
|
|
259
|
+
key: "multiplyByScalar",
|
|
260
|
+
value: function multiplyByScalar(scalar) {
|
|
260
261
|
for (var i = 0; i < this.ELEMENTS; ++i) {
|
|
261
|
-
this[i] *=
|
|
262
|
+
this[i] *= scalar;
|
|
262
263
|
}
|
|
263
264
|
|
|
264
265
|
return this.check();
|
|
265
266
|
}
|
|
267
|
+
}, {
|
|
268
|
+
key: "check",
|
|
269
|
+
value: function check() {
|
|
270
|
+
if (_common.config.debug && !this.validate()) {
|
|
271
|
+
throw new Error("math.gl: ".concat(this.constructor.name, " some fields set to invalid numbers'"));
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
return this;
|
|
275
|
+
}
|
|
276
|
+
}, {
|
|
277
|
+
key: "validate",
|
|
278
|
+
value: function validate() {
|
|
279
|
+
var valid = this.length === this.ELEMENTS;
|
|
280
|
+
|
|
281
|
+
for (var i = 0; i < this.ELEMENTS; ++i) {
|
|
282
|
+
valid = valid && Number.isFinite(this[i]);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
return valid;
|
|
286
|
+
}
|
|
266
287
|
}, {
|
|
267
288
|
key: "sub",
|
|
268
289
|
value: function sub(a) {
|
|
@@ -303,7 +324,7 @@ var MathArray = function (_extendableBuiltin2) {
|
|
|
303
324
|
}, {
|
|
304
325
|
key: "divideScalar",
|
|
305
326
|
value: function divideScalar(a) {
|
|
306
|
-
return this.
|
|
327
|
+
return this.multiplyByScalar(1 / a);
|
|
307
328
|
}
|
|
308
329
|
}, {
|
|
309
330
|
key: "clampScalar",
|
|
@@ -314,36 +335,11 @@ var MathArray = function (_extendableBuiltin2) {
|
|
|
314
335
|
|
|
315
336
|
return this.check();
|
|
316
337
|
}
|
|
317
|
-
}, {
|
|
318
|
-
key: "multiplyByScalar",
|
|
319
|
-
value: function multiplyByScalar(scalar) {
|
|
320
|
-
return this.scale(scalar);
|
|
321
|
-
}
|
|
322
338
|
}, {
|
|
323
339
|
key: "elements",
|
|
324
340
|
get: function get() {
|
|
325
341
|
return this;
|
|
326
342
|
}
|
|
327
|
-
}, {
|
|
328
|
-
key: "check",
|
|
329
|
-
value: function check() {
|
|
330
|
-
if (_common.config.debug && !this.validate()) {
|
|
331
|
-
throw new Error("math.gl: ".concat(this.constructor.name, " some fields set to invalid numbers'"));
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
return this;
|
|
335
|
-
}
|
|
336
|
-
}, {
|
|
337
|
-
key: "validate",
|
|
338
|
-
value: function validate() {
|
|
339
|
-
var valid = this.length === this.ELEMENTS;
|
|
340
|
-
|
|
341
|
-
for (var i = 0; i < this.ELEMENTS; ++i) {
|
|
342
|
-
valid = valid && Number.isFinite(this[i]);
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
return valid;
|
|
346
|
-
}
|
|
347
343
|
}]);
|
|
348
344
|
return MathArray;
|
|
349
345
|
}(_extendableBuiltin(Array));
|