@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.
Files changed (188) hide show
  1. package/dist/classes/base/math-array.d.ts +61 -31
  2. package/dist/classes/base/math-array.d.ts.map +1 -1
  3. package/dist/classes/base/math-array.js +67 -65
  4. package/dist/classes/base/matrix.d.ts +12 -10
  5. package/dist/classes/base/matrix.d.ts.map +1 -1
  6. package/dist/classes/base/matrix.js +2 -10
  7. package/dist/classes/base/vector.d.ts +37 -25
  8. package/dist/classes/base/vector.d.ts.map +1 -1
  9. package/dist/classes/base/vector.js +17 -24
  10. package/dist/classes/euler.d.ts +59 -55
  11. package/dist/classes/euler.d.ts.map +1 -1
  12. package/dist/classes/euler.js +57 -77
  13. package/dist/classes/matrix3.d.ts +58 -41
  14. package/dist/classes/matrix3.d.ts.map +1 -1
  15. package/dist/classes/matrix3.js +68 -59
  16. package/dist/classes/matrix4.d.ts +214 -90
  17. package/dist/classes/matrix4.d.ts.map +1 -1
  18. package/dist/classes/matrix4.js +252 -171
  19. package/dist/classes/pose.d.ts +29 -26
  20. package/dist/classes/pose.d.ts.map +1 -1
  21. package/dist/classes/pose.js +6 -23
  22. package/dist/classes/quaternion.d.ts +61 -40
  23. package/dist/classes/quaternion.d.ts.map +1 -1
  24. package/dist/classes/quaternion.js +49 -53
  25. package/dist/classes/spherical-coordinates.d.ts +45 -25
  26. package/dist/classes/spherical-coordinates.d.ts.map +1 -1
  27. package/dist/classes/spherical-coordinates.js +30 -24
  28. package/dist/classes/vector2.d.ts +51 -15
  29. package/dist/classes/vector2.d.ts.map +1 -1
  30. package/dist/classes/vector2.js +29 -23
  31. package/dist/classes/vector3.d.ts +47 -32
  32. package/dist/classes/vector3.d.ts.map +1 -1
  33. package/dist/classes/vector3.js +16 -30
  34. package/dist/classes/vector4.d.ts +37 -19
  35. package/dist/classes/vector4.d.ts.map +1 -1
  36. package/dist/classes/vector4.js +12 -24
  37. package/dist/es5/classes/base/math-array.js +248 -179
  38. package/dist/es5/classes/base/math-array.js.map +1 -1
  39. package/dist/es5/classes/base/matrix.js +74 -54
  40. package/dist/es5/classes/base/matrix.js.map +1 -1
  41. package/dist/es5/classes/base/vector.js +167 -121
  42. package/dist/es5/classes/base/vector.js.map +1 -1
  43. package/dist/es5/classes/euler.js +575 -480
  44. package/dist/es5/classes/euler.js.map +1 -1
  45. package/dist/es5/classes/matrix3.js +234 -158
  46. package/dist/es5/classes/matrix3.js.map +1 -1
  47. package/dist/es5/classes/matrix4.js +510 -417
  48. package/dist/es5/classes/matrix4.js.map +1 -1
  49. package/dist/es5/classes/pose.js +126 -101
  50. package/dist/es5/classes/pose.js.map +1 -1
  51. package/dist/es5/classes/quaternion.js +285 -213
  52. package/dist/es5/classes/quaternion.js.map +1 -1
  53. package/dist/es5/classes/spherical-coordinates.js +170 -125
  54. package/dist/es5/classes/spherical-coordinates.js.map +1 -1
  55. package/dist/es5/classes/vector2.js +118 -76
  56. package/dist/es5/classes/vector2.js.map +1 -1
  57. package/dist/es5/classes/vector3.js +171 -119
  58. package/dist/es5/classes/vector3.js.map +1 -1
  59. package/dist/es5/classes/vector4.js +141 -94
  60. package/dist/es5/classes/vector4.js.map +1 -1
  61. package/dist/es5/index.js +34 -34
  62. package/dist/es5/lib/common.js +56 -30
  63. package/dist/es5/lib/common.js.map +1 -1
  64. package/dist/es5/lib/gl-matrix-extras.js +14 -14
  65. package/dist/es5/lib/gl-matrix-extras.js.map +1 -1
  66. package/dist/es5/lib/gl-matrix.d.js +2 -0
  67. package/dist/es5/lib/gl-matrix.d.js.map +1 -0
  68. package/dist/es5/lib/validators.js +5 -3
  69. package/dist/es5/lib/validators.js.map +1 -1
  70. package/dist/esm/classes/base/math-array.js +45 -47
  71. package/dist/esm/classes/base/math-array.js.map +1 -1
  72. package/dist/esm/classes/base/matrix.js +0 -11
  73. package/dist/esm/classes/base/matrix.js.map +1 -1
  74. package/dist/esm/classes/base/vector.js +0 -10
  75. package/dist/esm/classes/base/vector.js.map +1 -1
  76. package/dist/esm/classes/euler.js +61 -48
  77. package/dist/esm/classes/euler.js.map +1 -1
  78. package/dist/esm/classes/matrix3.js +55 -33
  79. package/dist/esm/classes/matrix3.js.map +1 -1
  80. package/dist/esm/classes/matrix4.js +156 -136
  81. package/dist/esm/classes/matrix4.js.map +1 -1
  82. package/dist/esm/classes/pose.js +8 -4
  83. package/dist/esm/classes/pose.js.map +1 -1
  84. package/dist/esm/classes/quaternion.js +37 -27
  85. package/dist/esm/classes/quaternion.js.map +1 -1
  86. package/dist/esm/classes/spherical-coordinates.js +15 -5
  87. package/dist/esm/classes/spherical-coordinates.js.map +1 -1
  88. package/dist/esm/classes/vector2.js.map +1 -1
  89. package/dist/esm/classes/vector3.js +7 -2
  90. package/dist/esm/classes/vector3.js.map +1 -1
  91. package/dist/esm/classes/vector4.js +7 -2
  92. package/dist/esm/classes/vector4.js.map +1 -1
  93. package/dist/esm/lib/common.js +8 -8
  94. package/dist/esm/lib/common.js.map +1 -1
  95. package/dist/esm/lib/gl-matrix-extras.js.map +1 -1
  96. package/dist/esm/lib/gl-matrix.d.js +2 -0
  97. package/dist/esm/lib/gl-matrix.d.js.map +1 -0
  98. package/dist/esm/lib/validators.js.map +1 -1
  99. package/dist/lib/common.d.ts +14 -11
  100. package/dist/lib/common.d.ts.map +1 -1
  101. package/dist/lib/common.js +10 -23
  102. package/dist/lib/gl-matrix-extras.d.ts +6 -5
  103. package/dist/lib/gl-matrix-extras.d.ts.map +1 -1
  104. package/dist/lib/gl-matrix-extras.js +0 -1
  105. package/dist/lib/validators.d.ts +5 -4
  106. package/dist/lib/validators.d.ts.map +1 -1
  107. package/dist/lib/validators.js +0 -19
  108. package/package.json +5 -5
  109. package/src/classes/base/math-array.ts +265 -0
  110. package/src/classes/base/{matrix.js → matrix.ts} +15 -19
  111. package/src/classes/base/{vector.js → vector.ts} +47 -54
  112. package/src/classes/{euler.js → euler.ts} +121 -221
  113. package/src/classes/matrix3.ts +253 -0
  114. package/src/classes/matrix4.ts +668 -0
  115. package/src/classes/{pose.js → pose.ts} +52 -49
  116. package/src/classes/{quaternion.js → quaternion.ts} +107 -95
  117. package/src/classes/{spherical-coordinates.js → spherical-coordinates.ts} +84 -54
  118. package/src/classes/vector2.ts +127 -0
  119. package/src/classes/{vector3.js → vector3.ts} +43 -55
  120. package/src/classes/{vector4.js → vector4.ts} +44 -48
  121. package/src/lib/common.ts +58 -37
  122. package/src/lib/gl-matrix-extras.ts +26 -5
  123. package/src/lib/gl-matrix.d.ts +266 -0
  124. package/src/lib/validators.ts +10 -6
  125. package/dist/es5/classes/base/math-array.d.js +0 -46
  126. package/dist/es5/classes/base/math-array.d.js.map +0 -1
  127. package/dist/es5/classes/base/matrix.d.js +0 -15
  128. package/dist/es5/classes/base/matrix.d.js.map +0 -1
  129. package/dist/es5/classes/base/vector.d.js +0 -24
  130. package/dist/es5/classes/base/vector.d.js.map +0 -1
  131. package/dist/es5/classes/euler.d.js +0 -45
  132. package/dist/es5/classes/euler.d.js.map +0 -1
  133. package/dist/es5/classes/matrix3.d.js +0 -25
  134. package/dist/es5/classes/matrix3.d.js.map +0 -1
  135. package/dist/es5/classes/matrix4.d.js +0 -25
  136. package/dist/es5/classes/matrix4.d.js.map +0 -1
  137. package/dist/es5/classes/pose.d.js +0 -25
  138. package/dist/es5/classes/pose.d.js.map +0 -1
  139. package/dist/es5/classes/quaternion.d.js +0 -27
  140. package/dist/es5/classes/quaternion.d.js.map +0 -1
  141. package/dist/es5/classes/spherical-coordinates.d.js +0 -27
  142. package/dist/es5/classes/spherical-coordinates.d.js.map +0 -1
  143. package/dist/es5/classes/vector2.d.js +0 -18
  144. package/dist/es5/classes/vector2.d.js.map +0 -1
  145. package/dist/es5/classes/vector3.d.js +0 -24
  146. package/dist/es5/classes/vector3.d.js.map +0 -1
  147. package/dist/es5/classes/vector4.d.js +0 -25
  148. package/dist/es5/classes/vector4.d.js.map +0 -1
  149. package/dist/esm/classes/base/math-array.d.js +0 -36
  150. package/dist/esm/classes/base/math-array.d.js.map +0 -1
  151. package/dist/esm/classes/base/matrix.d.js +0 -3
  152. package/dist/esm/classes/base/matrix.d.js.map +0 -1
  153. package/dist/esm/classes/base/vector.d.js +0 -13
  154. package/dist/esm/classes/base/vector.d.js.map +0 -1
  155. package/dist/esm/classes/euler.d.js +0 -55
  156. package/dist/esm/classes/euler.d.js.map +0 -1
  157. package/dist/esm/classes/matrix3.d.js +0 -15
  158. package/dist/esm/classes/matrix3.d.js.map +0 -1
  159. package/dist/esm/classes/matrix4.d.js +0 -15
  160. package/dist/esm/classes/matrix4.d.js.map +0 -1
  161. package/dist/esm/classes/pose.d.js +0 -18
  162. package/dist/esm/classes/pose.d.js.map +0 -1
  163. package/dist/esm/classes/quaternion.d.js +0 -19
  164. package/dist/esm/classes/quaternion.d.js.map +0 -1
  165. package/dist/esm/classes/spherical-coordinates.d.js +0 -22
  166. package/dist/esm/classes/spherical-coordinates.d.js.map +0 -1
  167. package/dist/esm/classes/vector2.d.js +0 -6
  168. package/dist/esm/classes/vector2.d.js.map +0 -1
  169. package/dist/esm/classes/vector3.d.js +0 -13
  170. package/dist/esm/classes/vector3.d.js.map +0 -1
  171. package/dist/esm/classes/vector4.d.js +0 -15
  172. package/dist/esm/classes/vector4.d.js.map +0 -1
  173. package/src/classes/base/math-array.d.ts +0 -55
  174. package/src/classes/base/math-array.js +0 -250
  175. package/src/classes/base/matrix.d.ts +0 -15
  176. package/src/classes/base/vector.d.ts +0 -45
  177. package/src/classes/euler.d.ts +0 -92
  178. package/src/classes/matrix3.d.ts +0 -91
  179. package/src/classes/matrix3.js +0 -225
  180. package/src/classes/matrix4.d.ts +0 -161
  181. package/src/classes/matrix4.js +0 -530
  182. package/src/classes/pose.d.ts +0 -92
  183. package/src/classes/quaternion.d.ts +0 -107
  184. package/src/classes/spherical-coordinates.d.ts +0 -87
  185. package/src/classes/vector2.d.ts +0 -65
  186. package/src/classes/vector2.js +0 -122
  187. package/src/classes/vector3.d.ts +0 -65
  188. 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 _mathArray = _interopRequireDefault(require("./math-array"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
 
12
- var _validators = require("../../lib/validators");
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
13
 
14
- var _common = require("../../lib/common");
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
15
 
16
- var _assert = _interopRequireDefault(require("../../lib/assert"));
16
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
17
 
18
- class Matrix extends _mathArray.default {
19
- get ELEMENTS() {
20
- (0, _assert.default)(false);
21
- return 0;
22
- }
18
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
19
 
24
- get RANK() {
25
- (0, _assert.default)(false);
26
- return 0;
27
- }
20
+ var _mathArray = _interopRequireDefault(require("./math-array"));
28
21
 
29
- toString() {
30
- let string = '[';
22
+ var _validators = require("../../lib/validators");
31
23
 
32
- if (_common.config.printRowMajor) {
33
- string += 'row-major:';
24
+ var _common = require("../../lib/common");
34
25
 
35
- for (let row = 0; row < this.RANK; ++row) {
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
- for (let i = 0; i < this.ELEMENTS; ++i) {
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
- string += ']';
49
- return string;
50
- }
30
+ var Matrix = function (_MathArray) {
31
+ (0, _inherits2.default)(Matrix, _MathArray);
51
32
 
52
- getElementIndex(row, col) {
53
- return col * this.RANK + row;
54
- }
33
+ var _super = _createSuper(Matrix);
55
34
 
56
- getElement(row, col) {
57
- return this[col * this.RANK + row];
35
+ function Matrix() {
36
+ (0, _classCallCheck2.default)(this, Matrix);
37
+ return _super.apply(this, arguments);
58
38
  }
59
39
 
60
- setElement(row, col, value) {
61
- this[col * this.RANK + row] = (0, _validators.checkNumber)(value);
62
- return this;
63
- }
40
+ (0, _createClass2.default)(Matrix, [{
41
+ key: "toString",
42
+ value: function toString() {
43
+ var string = '[';
64
44
 
65
- getColumn(columnIndex, result = new Array(this.RANK).fill(-0)) {
66
- const firstIndex = columnIndex * this.RANK;
45
+ if (_common.config.printRowMajor) {
46
+ string += 'row-major:';
67
47
 
68
- for (let i = 0; i < this.RANK; ++i) {
69
- result[i] = this[firstIndex + i];
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
- return result;
73
- }
56
+ for (var i = 0; i < this.ELEMENTS; ++i) {
57
+ string += " ".concat(this[i]);
58
+ }
59
+ }
74
60
 
75
- setColumn(columnIndex, columnVector) {
76
- const firstIndex = columnIndex * this.RANK;
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
- for (let i = 0; i < this.RANK; ++i) {
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
- return this;
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.js"],"names":["Matrix","MathArray","ELEMENTS","RANK","toString","string","config","printRowMajor","row","col","i","getElementIndex","getElement","setElement","value","getColumn","columnIndex","result","Array","fill","firstIndex","setColumn","columnVector"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEe,MAAMA,MAAN,SAAqBC,kBAArB,CAA+B;AAEhC,MAARC,QAAQ,GAAG;AACb,yBAAO,KAAP;AACA,WAAO,CAAP;AACD;;AAEO,MAAJC,IAAI,GAAG;AACT,yBAAO,KAAP;AACA,WAAO,CAAP;AACD;;AAaDC,EAAAA,QAAQ,GAAG;AACT,QAAIC,MAAM,GAAG,GAAb;;AACA,QAAIC,eAAOC,aAAX,EAA0B;AACxBF,MAAAA,MAAM,IAAI,YAAV;;AACA,WAAK,IAAIG,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAG,KAAKL,IAA7B,EAAmC,EAAEK,GAArC,EAA0C;AACxC,aAAK,IAAIC,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAG,KAAKN,IAA7B,EAAmC,EAAEM,GAArC,EAA0C;AACxCJ,UAAAA,MAAM,eAAQ,KAAKI,GAAG,GAAG,KAAKN,IAAX,GAAkBK,GAAvB,CAAR,CAAN;AACD;AACF;AACF,KAPD,MAOO;AACLH,MAAAA,MAAM,IAAI,eAAV;;AACA,WAAK,IAAIK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKR,QAAzB,EAAmC,EAAEQ,CAArC,EAAwC;AACtCL,QAAAA,MAAM,eAAQ,KAAKK,CAAL,CAAR,CAAN;AACD;AACF;;AACDL,IAAAA,MAAM,IAAI,GAAV;AACA,WAAOA,MAAP;AACD;;AAEDM,EAAAA,eAAe,CAACH,GAAD,EAAMC,GAAN,EAAW;AACxB,WAAOA,GAAG,GAAG,KAAKN,IAAX,GAAkBK,GAAzB;AACD;;AAGDI,EAAAA,UAAU,CAACJ,GAAD,EAAMC,GAAN,EAAW;AACnB,WAAO,KAAKA,GAAG,GAAG,KAAKN,IAAX,GAAkBK,GAAvB,CAAP;AACD;;AAGDK,EAAAA,UAAU,CAACL,GAAD,EAAMC,GAAN,EAAWK,KAAX,EAAkB;AAC1B,SAAKL,GAAG,GAAG,KAAKN,IAAX,GAAkBK,GAAvB,IAA8B,6BAAYM,KAAZ,CAA9B;AACA,WAAO,IAAP;AACD;;AAEDC,EAAAA,SAAS,CAACC,WAAD,EAAcC,MAAM,GAAG,IAAIC,KAAJ,CAAU,KAAKf,IAAf,EAAqBgB,IAArB,CAA0B,CAAC,CAA3B,CAAvB,EAAsD;AAC7D,UAAMC,UAAU,GAAGJ,WAAW,GAAG,KAAKb,IAAtC;;AACA,SAAK,IAAIO,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKP,IAAzB,EAA+B,EAAEO,CAAjC,EAAoC;AAClCO,MAAAA,MAAM,CAACP,CAAD,CAAN,GAAY,KAAKU,UAAU,GAAGV,CAAlB,CAAZ;AACD;;AACD,WAAOO,MAAP;AACD;;AAEDI,EAAAA,SAAS,CAACL,WAAD,EAAcM,YAAd,EAA4B;AACnC,UAAMF,UAAU,GAAGJ,WAAW,GAAG,KAAKb,IAAtC;;AACA,SAAK,IAAIO,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKP,IAAzB,EAA+B,EAAEO,CAAjC,EAAoC;AAClC,WAAKU,UAAU,GAAGV,CAAlB,IAAuBY,YAAY,CAACZ,CAAD,CAAnC;AACD;;AACD,WAAO,IAAP;AACD;;AAvE2C","sourcesContent":["import MathArray from './math-array';\nimport {checkNumber} from '../../lib/validators';\nimport {config} from '../../lib/common';\nimport assert from '../../lib/assert';\n\nexport default class Matrix extends MathArray {\n // Defined by derived class\n get ELEMENTS() {\n assert(false);\n return 0;\n }\n\n get RANK() {\n assert(false);\n return 0;\n }\n\n // fromObject(object) {\n // const array = object.elements;\n // return this.fromRowMajor(array);\n // }\n\n // toObject(object) {\n // const array = object.elements;\n // this.toRowMajor(array);\n // return object;\n // }\n\n toString() {\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, col) {\n return col * this.RANK + row;\n }\n\n // By default assumes row major indices\n getElement(row, col) {\n return this[col * this.RANK + row];\n }\n\n // By default assumes row major indices\n setElement(row, col, value) {\n this[col * this.RANK + row] = checkNumber(value);\n return this;\n }\n\n getColumn(columnIndex, result = new Array(this.RANK).fill(-0)) {\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, columnVector) {\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"}
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 _mathArray = _interopRequireDefault(require("./math-array"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
 
12
- var _validators = require("../../lib/validators");
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
13
 
14
- var _assert = _interopRequireDefault(require("../../lib/assert"));
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
- set x(value) {
32
- this[0] = (0, _validators.checkNumber)(value);
33
- }
16
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
34
17
 
35
- get y() {
36
- return this[1];
37
- }
18
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
38
19
 
39
- set y(value) {
40
- this[1] = (0, _validators.checkNumber)(value);
41
- }
20
+ var _mathArray = _interopRequireDefault(require("./math-array"));
42
21
 
43
- len() {
44
- return Math.sqrt(this.lengthSquared());
45
- }
22
+ var _validators = require("../../lib/validators");
46
23
 
47
- magnitude() {
48
- return this.len();
49
- }
24
+ var _assert = _interopRequireDefault(require("../../lib/assert"));
50
25
 
51
- lengthSquared() {
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
- for (let i = 0; i < this.ELEMENTS; ++i) {
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
- return length;
59
- }
30
+ var Vector = function (_MathArray) {
31
+ (0, _inherits2.default)(Vector, _MathArray);
60
32
 
61
- magnitudeSquared() {
62
- return this.lengthSquared();
63
- }
33
+ var _super = _createSuper(Vector);
64
34
 
65
- distance(mathArray) {
66
- return Math.sqrt(this.distanceSquared(mathArray));
35
+ function Vector() {
36
+ (0, _classCallCheck2.default)(this, Vector);
37
+ return _super.apply(this, arguments);
67
38
  }
68
39
 
69
- distanceSquared(mathArray) {
70
- let length = 0;
71
-
72
- for (let i = 0; i < this.ELEMENTS; ++i) {
73
- const dist = this[i] - mathArray[i];
74
- length += dist * dist;
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
- return (0, _validators.checkNumber)(length);
78
- }
79
-
80
- dot(mathArray) {
81
- let product = 0;
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
- return (0, _validators.checkNumber)(product);
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
- return this.check();
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
- return this.check();
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
- return this.check();
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
- lengthSq() {
123
- return this.lengthSquared();
124
- }
97
+ return (0, _validators.checkNumber)(length);
98
+ }
99
+ }, {
100
+ key: "dot",
101
+ value: function dot(mathArray) {
102
+ var product = 0;
125
103
 
126
- distanceTo(vector) {
127
- return this.distance(vector);
128
- }
104
+ for (var i = 0; i < this.ELEMENTS; ++i) {
105
+ product += this[i] * mathArray[i];
106
+ }
129
107
 
130
- distanceToSquared(vector) {
131
- return this.distanceSquared(vector);
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
- getComponent(i) {
135
- (0, _assert.default)(i >= 0 && i < this.ELEMENTS, 'index is out of range');
136
- return (0, _validators.checkNumber)(this[i]);
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
- setComponent(i, value) {
140
- (0, _assert.default)(i >= 0 && i < this.ELEMENTS, 'index is out of range');
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
- addVectors(a, b) {
146
- return this.copy(a).add(b);
147
- }
133
+ for (var i = 0; i < this.ELEMENTS; ++i) {
134
+ this[i] *= vector[i];
135
+ }
136
+ }
148
137
 
149
- subVectors(a, b) {
150
- return this.copy(a).subtract(b);
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
- multiplyVectors(a, b) {
154
- return this.copy(a).multiply(b);
155
- }
147
+ for (var _i2 = 0, _vectors2 = vectors; _i2 < _vectors2.length; _i2++) {
148
+ var vector = _vectors2[_i2];
156
149
 
157
- addScaledVector(a, b) {
158
- return this.add(new this.constructor(a).multiplyScalar(b));
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.js"],"names":["Vector","MathArray","ELEMENTS","copy","vector","x","value","y","len","Math","sqrt","lengthSquared","magnitude","length","i","magnitudeSquared","distance","mathArray","distanceSquared","dist","dot","product","normalize","check","multiply","vectors","divide","lengthSq","distanceTo","distanceToSquared","getComponent","setComponent","addVectors","a","b","add","subVectors","subtract","multiplyVectors","addScaledVector","constructor","multiplyScalar"],"mappings":"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","sourcesContent":["import MathArray from './math-array';\nimport {checkNumber} from '../../lib/validators';\nimport assert from '../../lib/assert';\n\nexport default class Vector extends MathArray {\n get ELEMENTS() {\n assert(false);\n return 0;\n }\n\n // VIRTUAL METHODS\n copy(vector) {\n assert(false);\n return this;\n }\n\n // ACCESSORS\n\n get x() {\n return this[0];\n }\n set x(value) {\n this[0] = checkNumber(value);\n }\n\n get y() {\n return this[1];\n }\n set y(value) {\n this[1] = checkNumber(value);\n }\n\n // NOTE: `length` is a reserved word for Arrays, so we can't use `v.length()`\n // Offer `len` and `magnitude`\n len() {\n return Math.sqrt(this.lengthSquared());\n }\n\n magnitude() {\n return this.len();\n }\n\n lengthSquared() {\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 magnitudeSquared() {\n return this.lengthSquared();\n }\n\n distance(mathArray) {\n return Math.sqrt(this.distanceSquared(mathArray));\n }\n\n distanceSquared(mathArray) {\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) {\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() {\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 // negate() {\n // for (let i = 0; i < this.ELEMENTS; ++i) {\n // this[i] = -this[i];\n // }\n // return this.check();\n // }\n\n // inverse() {\n // for (let i = 0; i < this.ELEMENTS; ++i) {\n // this[i] = 1 / this[i];\n // }\n // return this.check();\n // }\n\n multiply(...vectors) {\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) {\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 lengthSq() {\n return this.lengthSquared();\n }\n\n distanceTo(vector) {\n return this.distance(vector);\n }\n\n distanceToSquared(vector) {\n return this.distanceSquared(vector);\n }\n\n getComponent(i) {\n assert(i >= 0 && i < this.ELEMENTS, 'index is out of range');\n return checkNumber(this[i]);\n }\n\n setComponent(i, value) {\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, b) {\n return this.copy(a).add(b);\n }\n\n subVectors(a, b) {\n return this.copy(a).subtract(b);\n }\n\n multiplyVectors(a, b) {\n return this.copy(a).multiply(b);\n }\n\n addScaledVector(a, b) {\n // @ts-ignore 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"}
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"}