@math.gl/core 3.6.0-alpha.1 → 3.6.0-alpha.4
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 +5 -5
- 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
|
@@ -7,82 +7,102 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
get ELEMENTS() {
|
|
20
|
-
(0, _assert.default)(false);
|
|
21
|
-
return 0;
|
|
22
|
-
}
|
|
18
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
23
19
|
|
|
24
|
-
|
|
25
|
-
(0, _assert.default)(false);
|
|
26
|
-
return 0;
|
|
27
|
-
}
|
|
20
|
+
var _mathArray = _interopRequireDefault(require("./math-array"));
|
|
28
21
|
|
|
29
|
-
|
|
30
|
-
let string = '[';
|
|
22
|
+
var _validators = require("../../lib/validators");
|
|
31
23
|
|
|
32
|
-
|
|
33
|
-
string += 'row-major:';
|
|
24
|
+
var _common = require("../../lib/common");
|
|
34
25
|
|
|
35
|
-
|
|
36
|
-
for (let col = 0; col < this.RANK; ++col) {
|
|
37
|
-
string += " ".concat(this[col * this.RANK + row]);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
} else {
|
|
41
|
-
string += 'column-major:';
|
|
26
|
+
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); }; }
|
|
42
27
|
|
|
43
|
-
|
|
44
|
-
string += " ".concat(this[i]);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
28
|
+
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; } }
|
|
47
29
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
30
|
+
var Matrix = function (_MathArray) {
|
|
31
|
+
(0, _inherits2.default)(Matrix, _MathArray);
|
|
51
32
|
|
|
52
|
-
|
|
53
|
-
return col * this.RANK + row;
|
|
54
|
-
}
|
|
33
|
+
var _super = _createSuper(Matrix);
|
|
55
34
|
|
|
56
|
-
|
|
57
|
-
|
|
35
|
+
function Matrix() {
|
|
36
|
+
(0, _classCallCheck2.default)(this, Matrix);
|
|
37
|
+
return _super.apply(this, arguments);
|
|
58
38
|
}
|
|
59
39
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
40
|
+
(0, _createClass2.default)(Matrix, [{
|
|
41
|
+
key: "toString",
|
|
42
|
+
value: function toString() {
|
|
43
|
+
var string = '[';
|
|
64
44
|
|
|
65
|
-
|
|
66
|
-
|
|
45
|
+
if (_common.config.printRowMajor) {
|
|
46
|
+
string += 'row-major:';
|
|
67
47
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
48
|
+
for (var row = 0; row < this.RANK; ++row) {
|
|
49
|
+
for (var col = 0; col < this.RANK; ++col) {
|
|
50
|
+
string += " ".concat(this[col * this.RANK + row]);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
} else {
|
|
54
|
+
string += 'column-major:';
|
|
71
55
|
|
|
72
|
-
|
|
73
|
-
|
|
56
|
+
for (var i = 0; i < this.ELEMENTS; ++i) {
|
|
57
|
+
string += " ".concat(this[i]);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
74
60
|
|
|
75
|
-
|
|
76
|
-
|
|
61
|
+
string += ']';
|
|
62
|
+
return string;
|
|
63
|
+
}
|
|
64
|
+
}, {
|
|
65
|
+
key: "getElementIndex",
|
|
66
|
+
value: function getElementIndex(row, col) {
|
|
67
|
+
return col * this.RANK + row;
|
|
68
|
+
}
|
|
69
|
+
}, {
|
|
70
|
+
key: "getElement",
|
|
71
|
+
value: function getElement(row, col) {
|
|
72
|
+
return this[col * this.RANK + row];
|
|
73
|
+
}
|
|
74
|
+
}, {
|
|
75
|
+
key: "setElement",
|
|
76
|
+
value: function setElement(row, col, value) {
|
|
77
|
+
this[col * this.RANK + row] = (0, _validators.checkNumber)(value);
|
|
78
|
+
return this;
|
|
79
|
+
}
|
|
80
|
+
}, {
|
|
81
|
+
key: "getColumn",
|
|
82
|
+
value: function getColumn(columnIndex) {
|
|
83
|
+
var result = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Array(this.RANK).fill(-0);
|
|
84
|
+
var firstIndex = columnIndex * this.RANK;
|
|
85
|
+
|
|
86
|
+
for (var i = 0; i < this.RANK; ++i) {
|
|
87
|
+
result[i] = this[firstIndex + i];
|
|
88
|
+
}
|
|
77
89
|
|
|
78
|
-
|
|
79
|
-
this[firstIndex + i] = columnVector[i];
|
|
90
|
+
return result;
|
|
80
91
|
}
|
|
92
|
+
}, {
|
|
93
|
+
key: "setColumn",
|
|
94
|
+
value: function setColumn(columnIndex, columnVector) {
|
|
95
|
+
var firstIndex = columnIndex * this.RANK;
|
|
81
96
|
|
|
82
|
-
|
|
83
|
-
|
|
97
|
+
for (var i = 0; i < this.RANK; ++i) {
|
|
98
|
+
this[firstIndex + i] = columnVector[i];
|
|
99
|
+
}
|
|
84
100
|
|
|
85
|
-
|
|
101
|
+
return this;
|
|
102
|
+
}
|
|
103
|
+
}]);
|
|
104
|
+
return Matrix;
|
|
105
|
+
}(_mathArray.default);
|
|
86
106
|
|
|
87
107
|
exports.default = Matrix;
|
|
88
108
|
//# sourceMappingURL=matrix.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/classes/base/matrix.
|
|
1
|
+
{"version":3,"sources":["../../../../src/classes/base/matrix.ts"],"names":["Matrix","string","config","printRowMajor","row","RANK","col","i","ELEMENTS","value","columnIndex","result","Array","fill","firstIndex","columnVector","MathArray"],"mappings":";;;;;;;;;;;;;;;;;;;AAGA;;AACA;;AACA;;;;;;IAG8BA,M;;;;;;;;;;;;WAc5B,oBAAmB;AACjB,UAAIC,MAAM,GAAG,GAAb;;AACA,UAAIC,eAAOC,aAAX,EAA0B;AACxBF,QAAAA,MAAM,IAAI,YAAV;;AACA,aAAK,IAAIG,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAG,KAAKC,IAA7B,EAAmC,EAAED,GAArC,EAA0C;AACxC,eAAK,IAAIE,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAG,KAAKD,IAA7B,EAAmC,EAAEC,GAArC,EAA0C;AACxCL,YAAAA,MAAM,eAAQ,KAAKK,GAAG,GAAG,KAAKD,IAAX,GAAkBD,GAAvB,CAAR,CAAN;AACD;AACF;AACF,OAPD,MAOO;AACLH,QAAAA,MAAM,IAAI,eAAV;;AACA,aAAK,IAAIM,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKC,QAAzB,EAAmC,EAAED,CAArC,EAAwC;AACtCN,UAAAA,MAAM,eAAQ,KAAKM,CAAL,CAAR,CAAN;AACD;AACF;;AACDN,MAAAA,MAAM,IAAI,GAAV;AACA,aAAOA,MAAP;AACD;;;WAED,yBAAgBG,GAAhB,EAA6BE,GAA7B,EAAkD;AAChD,aAAOA,GAAG,GAAG,KAAKD,IAAX,GAAkBD,GAAzB;AACD;;;WAGD,oBAAWA,GAAX,EAAwBE,GAAxB,EAA6C;AAC3C,aAAO,KAAKA,GAAG,GAAG,KAAKD,IAAX,GAAkBD,GAAvB,CAAP;AACD;;;WAGD,oBAAWA,GAAX,EAAwBE,GAAxB,EAAqCG,KAArC,EAA0D;AACxD,WAAKH,GAAG,GAAG,KAAKD,IAAX,GAAkBD,GAAvB,IAA8B,6BAAYK,KAAZ,CAA9B;AACA,aAAO,IAAP;AACD;;;WAID,mBAAUC,WAAV,EAA2F;AAAA,UAA5DC,MAA4D,uEAAzC,IAAIC,KAAJ,CAAU,KAAKP,IAAf,EAAqBQ,IAArB,CAA0B,CAAC,CAA3B,CAAyC;AACzF,UAAMC,UAAU,GAAGJ,WAAW,GAAG,KAAKL,IAAtC;;AACA,WAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKF,IAAzB,EAA+B,EAAEE,CAAjC,EAAoC;AAClCI,QAAAA,MAAM,CAACJ,CAAD,CAAN,GAAY,KAAKO,UAAU,GAAGP,CAAlB,CAAZ;AACD;;AACD,aAAOI,MAAP;AACD;;;WAED,mBAAUD,WAAV,EAA+BK,YAA/B,EAA2E;AACzE,UAAMD,UAAU,GAAGJ,WAAW,GAAG,KAAKL,IAAtC;;AACA,WAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKF,IAAzB,EAA+B,EAAEE,CAAjC,EAAoC;AAClC,aAAKO,UAAU,GAAGP,CAAlB,IAAuBQ,YAAY,CAACR,CAAD,CAAnC;AACD;;AACD,aAAO,IAAP;AACD;;;EAhE0CS,kB","sourcesContent":["// Copyright (c) 2017 Uber Technologies, Inc.\n// MIT License\nimport {NumericArray} from '@math.gl/types';\nimport MathArray from './math-array';\nimport {checkNumber} from '../../lib/validators';\nimport {config} from '../../lib/common';\n\n/** Base class for matrices */\nexport default abstract class Matrix extends MathArray {\n abstract get RANK(): number;\n\n // fromObject(object) {\n // const array = object.elements;\n // return this.fromRowMajor(array);\n // }\n // toObject(object) {\n // const array = object.elements;\n // this.toRowMajor(array);\n // return object;\n // }\n\n // TODO better override formatString?\n toString(): string {\n let string = '[';\n if (config.printRowMajor) {\n string += 'row-major:';\n for (let row = 0; row < this.RANK; ++row) {\n for (let col = 0; col < this.RANK; ++col) {\n string += ` ${this[col * this.RANK + row]}`;\n }\n }\n } else {\n string += 'column-major:';\n for (let i = 0; i < this.ELEMENTS; ++i) {\n string += ` ${this[i]}`;\n }\n }\n string += ']';\n return string;\n }\n\n getElementIndex(row: number, col: number): number {\n return col * this.RANK + row;\n }\n\n // By default assumes row major indices\n getElement(row: number, col: number): number {\n return this[col * this.RANK + row];\n }\n\n // By default assumes row major indices\n setElement(row: number, col: number, value: number): this {\n this[col * this.RANK + row] = checkNumber(value);\n return this;\n }\n getColumn<NumArrayT>(columnIndex: number, result: NumArrayT): NumArrayT;\n getColumn(columnIndex: number): number[];\n\n getColumn(columnIndex: number, result: number[] = new Array(this.RANK).fill(-0)): number[] {\n const firstIndex = columnIndex * this.RANK;\n for (let i = 0; i < this.RANK; ++i) {\n result[i] = this[firstIndex + i];\n }\n return result;\n }\n\n setColumn(columnIndex: number, columnVector: Readonly<NumericArray>): this {\n const firstIndex = columnIndex * this.RANK;\n for (let i = 0; i < this.RANK; ++i) {\n this[firstIndex + i] = columnVector[i];\n }\n return this;\n }\n}\n"],"file":"matrix.js"}
|
|
@@ -7,158 +7,204 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
13
|
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
class Vector extends _mathArray.default {
|
|
17
|
-
get ELEMENTS() {
|
|
18
|
-
(0, _assert.default)(false);
|
|
19
|
-
return 0;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
copy(vector) {
|
|
23
|
-
(0, _assert.default)(false);
|
|
24
|
-
return this;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
get x() {
|
|
28
|
-
return this[0];
|
|
29
|
-
}
|
|
14
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
30
15
|
|
|
31
|
-
|
|
32
|
-
this[0] = (0, _validators.checkNumber)(value);
|
|
33
|
-
}
|
|
16
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
34
17
|
|
|
35
|
-
|
|
36
|
-
return this[1];
|
|
37
|
-
}
|
|
18
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
38
19
|
|
|
39
|
-
|
|
40
|
-
this[1] = (0, _validators.checkNumber)(value);
|
|
41
|
-
}
|
|
20
|
+
var _mathArray = _interopRequireDefault(require("./math-array"));
|
|
42
21
|
|
|
43
|
-
|
|
44
|
-
return Math.sqrt(this.lengthSquared());
|
|
45
|
-
}
|
|
22
|
+
var _validators = require("../../lib/validators");
|
|
46
23
|
|
|
47
|
-
|
|
48
|
-
return this.len();
|
|
49
|
-
}
|
|
24
|
+
var _assert = _interopRequireDefault(require("../../lib/assert"));
|
|
50
25
|
|
|
51
|
-
|
|
52
|
-
let length = 0;
|
|
26
|
+
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); }; }
|
|
53
27
|
|
|
54
|
-
|
|
55
|
-
length += this[i] * this[i];
|
|
56
|
-
}
|
|
28
|
+
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; } }
|
|
57
29
|
|
|
58
|
-
|
|
59
|
-
|
|
30
|
+
var Vector = function (_MathArray) {
|
|
31
|
+
(0, _inherits2.default)(Vector, _MathArray);
|
|
60
32
|
|
|
61
|
-
|
|
62
|
-
return this.lengthSquared();
|
|
63
|
-
}
|
|
33
|
+
var _super = _createSuper(Vector);
|
|
64
34
|
|
|
65
|
-
|
|
66
|
-
|
|
35
|
+
function Vector() {
|
|
36
|
+
(0, _classCallCheck2.default)(this, Vector);
|
|
37
|
+
return _super.apply(this, arguments);
|
|
67
38
|
}
|
|
68
39
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
40
|
+
(0, _createClass2.default)(Vector, [{
|
|
41
|
+
key: "x",
|
|
42
|
+
get: function get() {
|
|
43
|
+
return this[0];
|
|
44
|
+
},
|
|
45
|
+
set: function set(value) {
|
|
46
|
+
this[0] = (0, _validators.checkNumber)(value);
|
|
75
47
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
84
|
-
product += this[i] * mathArray[i];
|
|
48
|
+
}, {
|
|
49
|
+
key: "y",
|
|
50
|
+
get: function get() {
|
|
51
|
+
return this[1];
|
|
52
|
+
},
|
|
53
|
+
set: function set(value) {
|
|
54
|
+
this[1] = (0, _validators.checkNumber)(value);
|
|
85
55
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
normalize() {
|
|
91
|
-
const length = this.magnitude();
|
|
92
|
-
|
|
93
|
-
if (length !== 0) {
|
|
94
|
-
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
95
|
-
this[i] /= length;
|
|
96
|
-
}
|
|
56
|
+
}, {
|
|
57
|
+
key: "len",
|
|
58
|
+
value: function len() {
|
|
59
|
+
return Math.sqrt(this.lengthSquared());
|
|
97
60
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
multiply(...vectors) {
|
|
103
|
-
for (const vector of vectors) {
|
|
104
|
-
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
105
|
-
this[i] *= vector[i];
|
|
106
|
-
}
|
|
61
|
+
}, {
|
|
62
|
+
key: "magnitude",
|
|
63
|
+
value: function magnitude() {
|
|
64
|
+
return this.len();
|
|
107
65
|
}
|
|
66
|
+
}, {
|
|
67
|
+
key: "lengthSquared",
|
|
68
|
+
value: function lengthSquared() {
|
|
69
|
+
var length = 0;
|
|
108
70
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
divide(...vectors) {
|
|
113
|
-
for (const vector of vectors) {
|
|
114
|
-
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
115
|
-
this[i] /= vector[i];
|
|
71
|
+
for (var i = 0; i < this.ELEMENTS; ++i) {
|
|
72
|
+
length += this[i] * this[i];
|
|
116
73
|
}
|
|
117
|
-
}
|
|
118
74
|
|
|
119
|
-
|
|
120
|
-
|
|
75
|
+
return length;
|
|
76
|
+
}
|
|
77
|
+
}, {
|
|
78
|
+
key: "magnitudeSquared",
|
|
79
|
+
value: function magnitudeSquared() {
|
|
80
|
+
return this.lengthSquared();
|
|
81
|
+
}
|
|
82
|
+
}, {
|
|
83
|
+
key: "distance",
|
|
84
|
+
value: function distance(mathArray) {
|
|
85
|
+
return Math.sqrt(this.distanceSquared(mathArray));
|
|
86
|
+
}
|
|
87
|
+
}, {
|
|
88
|
+
key: "distanceSquared",
|
|
89
|
+
value: function distanceSquared(mathArray) {
|
|
90
|
+
var length = 0;
|
|
91
|
+
|
|
92
|
+
for (var i = 0; i < this.ELEMENTS; ++i) {
|
|
93
|
+
var dist = this[i] - mathArray[i];
|
|
94
|
+
length += dist * dist;
|
|
95
|
+
}
|
|
121
96
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
}
|
|
97
|
+
return (0, _validators.checkNumber)(length);
|
|
98
|
+
}
|
|
99
|
+
}, {
|
|
100
|
+
key: "dot",
|
|
101
|
+
value: function dot(mathArray) {
|
|
102
|
+
var product = 0;
|
|
125
103
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
104
|
+
for (var i = 0; i < this.ELEMENTS; ++i) {
|
|
105
|
+
product += this[i] * mathArray[i];
|
|
106
|
+
}
|
|
129
107
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
}
|
|
108
|
+
return (0, _validators.checkNumber)(product);
|
|
109
|
+
}
|
|
110
|
+
}, {
|
|
111
|
+
key: "normalize",
|
|
112
|
+
value: function normalize() {
|
|
113
|
+
var length = this.magnitude();
|
|
114
|
+
|
|
115
|
+
if (length !== 0) {
|
|
116
|
+
for (var i = 0; i < this.ELEMENTS; ++i) {
|
|
117
|
+
this[i] /= length;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
133
120
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
121
|
+
return this.check();
|
|
122
|
+
}
|
|
123
|
+
}, {
|
|
124
|
+
key: "multiply",
|
|
125
|
+
value: function multiply() {
|
|
126
|
+
for (var _len = arguments.length, vectors = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
127
|
+
vectors[_key] = arguments[_key];
|
|
128
|
+
}
|
|
138
129
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
this[i] = value;
|
|
142
|
-
return this.check();
|
|
143
|
-
}
|
|
130
|
+
for (var _i = 0, _vectors = vectors; _i < _vectors.length; _i++) {
|
|
131
|
+
var vector = _vectors[_i];
|
|
144
132
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
133
|
+
for (var i = 0; i < this.ELEMENTS; ++i) {
|
|
134
|
+
this[i] *= vector[i];
|
|
135
|
+
}
|
|
136
|
+
}
|
|
148
137
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
}
|
|
138
|
+
return this.check();
|
|
139
|
+
}
|
|
140
|
+
}, {
|
|
141
|
+
key: "divide",
|
|
142
|
+
value: function divide() {
|
|
143
|
+
for (var _len2 = arguments.length, vectors = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
144
|
+
vectors[_key2] = arguments[_key2];
|
|
145
|
+
}
|
|
152
146
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
}
|
|
147
|
+
for (var _i2 = 0, _vectors2 = vectors; _i2 < _vectors2.length; _i2++) {
|
|
148
|
+
var vector = _vectors2[_i2];
|
|
156
149
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
150
|
+
for (var i = 0; i < this.ELEMENTS; ++i) {
|
|
151
|
+
this[i] /= vector[i];
|
|
152
|
+
}
|
|
153
|
+
}
|
|
160
154
|
|
|
161
|
-
|
|
155
|
+
return this.check();
|
|
156
|
+
}
|
|
157
|
+
}, {
|
|
158
|
+
key: "lengthSq",
|
|
159
|
+
value: function lengthSq() {
|
|
160
|
+
return this.lengthSquared();
|
|
161
|
+
}
|
|
162
|
+
}, {
|
|
163
|
+
key: "distanceTo",
|
|
164
|
+
value: function distanceTo(vector) {
|
|
165
|
+
return this.distance(vector);
|
|
166
|
+
}
|
|
167
|
+
}, {
|
|
168
|
+
key: "distanceToSquared",
|
|
169
|
+
value: function distanceToSquared(vector) {
|
|
170
|
+
return this.distanceSquared(vector);
|
|
171
|
+
}
|
|
172
|
+
}, {
|
|
173
|
+
key: "getComponent",
|
|
174
|
+
value: function getComponent(i) {
|
|
175
|
+
(0, _assert.default)(i >= 0 && i < this.ELEMENTS, 'index is out of range');
|
|
176
|
+
return (0, _validators.checkNumber)(this[i]);
|
|
177
|
+
}
|
|
178
|
+
}, {
|
|
179
|
+
key: "setComponent",
|
|
180
|
+
value: function setComponent(i, value) {
|
|
181
|
+
(0, _assert.default)(i >= 0 && i < this.ELEMENTS, 'index is out of range');
|
|
182
|
+
this[i] = value;
|
|
183
|
+
return this.check();
|
|
184
|
+
}
|
|
185
|
+
}, {
|
|
186
|
+
key: "addVectors",
|
|
187
|
+
value: function addVectors(a, b) {
|
|
188
|
+
return this.copy(a).add(b);
|
|
189
|
+
}
|
|
190
|
+
}, {
|
|
191
|
+
key: "subVectors",
|
|
192
|
+
value: function subVectors(a, b) {
|
|
193
|
+
return this.copy(a).subtract(b);
|
|
194
|
+
}
|
|
195
|
+
}, {
|
|
196
|
+
key: "multiplyVectors",
|
|
197
|
+
value: function multiplyVectors(a, b) {
|
|
198
|
+
return this.copy(a).multiply(b);
|
|
199
|
+
}
|
|
200
|
+
}, {
|
|
201
|
+
key: "addScaledVector",
|
|
202
|
+
value: function addScaledVector(a, b) {
|
|
203
|
+
return this.add(new this.constructor(a).multiplyScalar(b));
|
|
204
|
+
}
|
|
205
|
+
}]);
|
|
206
|
+
return Vector;
|
|
207
|
+
}(_mathArray.default);
|
|
162
208
|
|
|
163
209
|
exports.default = Vector;
|
|
164
210
|
//# sourceMappingURL=vector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/classes/base/vector.
|
|
1
|
+
{"version":3,"sources":["../../../../src/classes/base/vector.ts"],"names":["Vector","value","Math","sqrt","lengthSquared","len","length","i","ELEMENTS","mathArray","distanceSquared","dist","product","magnitude","check","vectors","vector","distance","a","b","copy","add","subtract","multiply","constructor","multiplyScalar","MathArray"],"mappings":"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","sourcesContent":["// Copyright (c) 2017 Uber Technologies, Inc.\n// MIT License\nimport {NumericArray} from '@math.gl/types';\nimport MathArray from './math-array';\nimport {checkNumber} from '../../lib/validators';\nimport assert from '../../lib/assert';\n\n/** Base class for vectors with at least 2 elements */\nexport default abstract class Vector extends MathArray {\n // ACCESSORS\n\n get x(): number {\n return this[0];\n }\n\n set x(value: number) {\n this[0] = checkNumber(value);\n }\n\n get y(): number {\n return this[1];\n }\n\n set y(value: number) {\n this[1] = checkNumber(value);\n }\n\n /**\n * Returns the length of the vector from the origin to the point described by this vector\n *\n * @note `length` is a reserved word for Arrays, so `v.length()` will return number of elements\n * Instead we provide `len` and `magnitude`\n */\n len(): number {\n return Math.sqrt(this.lengthSquared());\n }\n\n /**\n * Returns the length of the vector from the origin to the point described by this vector\n */\n magnitude(): number {\n return this.len();\n }\n\n /**\n * Returns the squared length of the vector from the origin to the point described by this vector\n */\n lengthSquared(): number {\n let length = 0;\n for (let i = 0; i < this.ELEMENTS; ++i) {\n length += this[i] * this[i];\n }\n return length;\n }\n\n /**\n * Returns the squared length of the vector from the origin to the point described by this vector\n */\n magnitudeSquared(): number {\n return this.lengthSquared();\n }\n\n distance(mathArray: Readonly<NumericArray>): number {\n return Math.sqrt(this.distanceSquared(mathArray));\n }\n\n distanceSquared(mathArray: Readonly<NumericArray>): number {\n let length = 0;\n for (let i = 0; i < this.ELEMENTS; ++i) {\n const dist = this[i] - mathArray[i];\n length += dist * dist;\n }\n return checkNumber(length);\n }\n\n dot(mathArray: Readonly<NumericArray>): number {\n let product = 0;\n for (let i = 0; i < this.ELEMENTS; ++i) {\n product += this[i] * mathArray[i];\n }\n return checkNumber(product);\n }\n\n // MODIFIERS\n\n normalize(): this {\n const length = this.magnitude();\n if (length !== 0) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] /= length;\n }\n }\n return this.check();\n }\n\n multiply(...vectors: Readonly<NumericArray>[]): this {\n for (const vector of vectors) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] *= vector[i];\n }\n }\n return this.check();\n }\n\n divide(...vectors: Readonly<NumericArray>[]): this {\n for (const vector of vectors) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] /= vector[i];\n }\n }\n return this.check();\n }\n\n // THREE.js compatibility\n\n lengthSq(): number {\n return this.lengthSquared();\n }\n distanceTo(vector: Readonly<NumericArray>): number {\n return this.distance(vector);\n }\n distanceToSquared(vector: Readonly<NumericArray>): number {\n return this.distanceSquared(vector);\n }\n\n getComponent(i: number): number {\n assert(i >= 0 && i < this.ELEMENTS, 'index is out of range');\n return checkNumber(this[i]);\n }\n\n setComponent(i: number, value: number): this {\n assert(i >= 0 && i < this.ELEMENTS, 'index is out of range');\n this[i] = value;\n return this.check();\n }\n\n addVectors(a: Readonly<NumericArray>, b: Readonly<NumericArray>): this {\n return this.copy(a).add(b);\n }\n\n subVectors(a: Readonly<NumericArray>, b: Readonly<NumericArray>): this {\n return this.copy(a).subtract(b);\n }\n\n multiplyVectors(a: Readonly<NumericArray>, b: Readonly<NumericArray>): this {\n return this.copy(a).multiply(b);\n }\n\n addScaledVector(a: Readonly<NumericArray>, b: number): this {\n // @ts-expect-error error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.\n return this.add(new this.constructor(a).multiplyScalar(b));\n }\n}\n"],"file":"vector.js"}
|