@math.gl/core 3.6.2 → 4.0.0-alpha.1

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 (135) hide show
  1. package/dist/classes/base/math-array.d.ts +3 -3
  2. package/dist/classes/base/math-array.d.ts.map +1 -1
  3. package/dist/{esm/classes → classes}/base/math-array.js +3 -2
  4. package/dist/classes/base/math-array.js.map +1 -0
  5. package/dist/classes/base/matrix.d.ts.map +1 -1
  6. package/dist/{esm/classes → classes}/base/matrix.js +3 -3
  7. package/dist/classes/base/matrix.js.map +1 -0
  8. package/dist/{esm/classes → classes}/base/vector.js +3 -3
  9. package/dist/classes/base/vector.js.map +1 -0
  10. package/dist/classes/euler.d.ts +1 -1
  11. package/dist/classes/euler.d.ts.map +1 -1
  12. package/dist/{esm/classes → classes}/euler.js +4 -4
  13. package/dist/classes/euler.js.map +1 -0
  14. package/dist/classes/matrix3.d.ts +1 -1
  15. package/dist/classes/matrix3.d.ts.map +1 -1
  16. package/dist/{esm/classes → classes}/matrix3.js +4 -4
  17. package/dist/classes/matrix3.js.map +1 -0
  18. package/dist/classes/matrix4.d.ts +1 -1
  19. package/dist/classes/matrix4.d.ts.map +1 -1
  20. package/dist/{esm/classes → classes}/matrix4.js +3 -3
  21. package/dist/classes/matrix4.js.map +1 -0
  22. package/dist/classes/pose.d.ts +1 -1
  23. package/dist/classes/pose.d.ts.map +1 -1
  24. package/dist/{esm/classes → classes}/pose.js +3 -3
  25. package/dist/classes/pose.js.map +1 -0
  26. package/dist/classes/quaternion.d.ts +1 -1
  27. package/dist/classes/quaternion.d.ts.map +1 -1
  28. package/dist/{esm/classes → classes}/quaternion.js +3 -3
  29. package/dist/classes/quaternion.js.map +1 -0
  30. package/dist/classes/spherical-coordinates.d.ts +3 -3
  31. package/dist/classes/spherical-coordinates.d.ts.map +1 -1
  32. package/dist/{esm/classes → classes}/spherical-coordinates.js +3 -3
  33. package/dist/classes/spherical-coordinates.js.map +1 -0
  34. package/dist/classes/vector2.d.ts.map +1 -1
  35. package/dist/{esm/classes → classes}/vector2.js +4 -4
  36. package/dist/classes/vector2.js.map +1 -0
  37. package/dist/classes/vector3.d.ts.map +1 -1
  38. package/dist/{esm/classes → classes}/vector3.js +4 -4
  39. package/dist/classes/vector3.js.map +1 -0
  40. package/dist/classes/vector4.d.ts +1 -1
  41. package/dist/classes/vector4.d.ts.map +1 -1
  42. package/dist/{esm/classes → classes}/vector4.js +4 -4
  43. package/dist/classes/vector4.js.map +1 -0
  44. package/dist/{es5/docs → docs}/README.md +0 -0
  45. package/dist/index.cjs +2335 -0
  46. package/dist/index.js +16 -0
  47. package/dist/index.js.map +1 -0
  48. package/dist/{esm/lib → lib}/assert.js +0 -0
  49. package/dist/lib/assert.js.map +1 -0
  50. package/dist/lib/common.d.ts +1 -1
  51. package/dist/lib/common.d.ts.map +1 -1
  52. package/dist/{esm/lib → lib}/common.js +3 -7
  53. package/dist/lib/common.js.map +1 -0
  54. package/dist/{esm/lib → lib}/gl-matrix-extras.js +0 -0
  55. package/dist/lib/gl-matrix-extras.js.map +1 -0
  56. package/dist/{esm/lib → lib}/gl-matrix.d.js +0 -0
  57. package/dist/{es5/lib → lib}/gl-matrix.d.js.map +0 -0
  58. package/dist/{esm/lib → lib}/math-utils.js +0 -0
  59. package/dist/lib/math-utils.js.map +1 -0
  60. package/dist/lib/validators.d.ts +1 -1
  61. package/dist/lib/validators.d.ts.map +1 -1
  62. package/dist/{esm/lib → lib}/validators.js +1 -1
  63. package/dist/lib/validators.js.map +1 -0
  64. package/package.json +7 -6
  65. package/src/classes/base/math-array.ts +10 -6
  66. package/src/classes/base/matrix.ts +1 -1
  67. package/src/classes/base/vector.ts +1 -1
  68. package/src/classes/euler.ts +4 -4
  69. package/src/classes/matrix3.ts +8 -4
  70. package/src/classes/matrix4.ts +7 -2
  71. package/src/classes/quaternion.ts +6 -4
  72. package/src/classes/spherical-coordinates.ts +2 -1
  73. package/src/classes/vector2.ts +1 -0
  74. package/src/classes/vector3.ts +1 -0
  75. package/src/classes/vector4.ts +6 -4
  76. package/src/lib/common.ts +3 -7
  77. package/src/lib/validators.ts +2 -2
  78. package/dist/es5/classes/base/math-array.js +0 -348
  79. package/dist/es5/classes/base/math-array.js.map +0 -1
  80. package/dist/es5/classes/base/matrix.js +0 -108
  81. package/dist/es5/classes/base/matrix.js.map +0 -1
  82. package/dist/es5/classes/base/vector.js +0 -210
  83. package/dist/es5/classes/base/vector.js.map +0 -1
  84. package/dist/es5/classes/euler.js +0 -654
  85. package/dist/es5/classes/euler.js.map +0 -1
  86. package/dist/es5/classes/matrix3.js +0 -284
  87. package/dist/es5/classes/matrix3.js.map +0 -1
  88. package/dist/es5/classes/matrix4.js +0 -574
  89. package/dist/es5/classes/matrix4.js.map +0 -1
  90. package/dist/es5/classes/pose.js +0 -159
  91. package/dist/es5/classes/pose.js.map +0 -1
  92. package/dist/es5/classes/quaternion.js +0 -323
  93. package/dist/es5/classes/quaternion.js.map +0 -1
  94. package/dist/es5/classes/spherical-coordinates.js +0 -208
  95. package/dist/es5/classes/spherical-coordinates.js.map +0 -1
  96. package/dist/es5/classes/vector2.js +0 -156
  97. package/dist/es5/classes/vector2.js.map +0 -1
  98. package/dist/es5/classes/vector3.js +0 -213
  99. package/dist/es5/classes/vector3.js.map +0 -1
  100. package/dist/es5/classes/vector4.js +0 -185
  101. package/dist/es5/classes/vector4.js.map +0 -1
  102. package/dist/es5/index.js +0 -236
  103. package/dist/es5/index.js.map +0 -1
  104. package/dist/es5/lib/assert.js +0 -13
  105. package/dist/es5/lib/assert.js.map +0 -1
  106. package/dist/es5/lib/common.js +0 -255
  107. package/dist/es5/lib/common.js.map +0 -1
  108. package/dist/es5/lib/gl-matrix-extras.js +0 -61
  109. package/dist/es5/lib/gl-matrix-extras.js.map +0 -1
  110. package/dist/es5/lib/gl-matrix.d.js +0 -2
  111. package/dist/es5/lib/math-utils.js +0 -34
  112. package/dist/es5/lib/math-utils.js.map +0 -1
  113. package/dist/es5/lib/validators.js +0 -53
  114. package/dist/es5/lib/validators.js.map +0 -1
  115. package/dist/esm/classes/base/math-array.js.map +0 -1
  116. package/dist/esm/classes/base/matrix.js.map +0 -1
  117. package/dist/esm/classes/base/vector.js.map +0 -1
  118. package/dist/esm/classes/euler.js.map +0 -1
  119. package/dist/esm/classes/matrix3.js.map +0 -1
  120. package/dist/esm/classes/matrix4.js.map +0 -1
  121. package/dist/esm/classes/pose.js.map +0 -1
  122. package/dist/esm/classes/quaternion.js.map +0 -1
  123. package/dist/esm/classes/spherical-coordinates.js.map +0 -1
  124. package/dist/esm/classes/vector2.js.map +0 -1
  125. package/dist/esm/classes/vector3.js.map +0 -1
  126. package/dist/esm/classes/vector4.js.map +0 -1
  127. package/dist/esm/docs/README.md +0 -0
  128. package/dist/esm/index.js +0 -16
  129. package/dist/esm/index.js.map +0 -1
  130. package/dist/esm/lib/assert.js.map +0 -1
  131. package/dist/esm/lib/common.js.map +0 -1
  132. package/dist/esm/lib/gl-matrix-extras.js.map +0 -1
  133. package/dist/esm/lib/gl-matrix.d.js.map +0 -1
  134. package/dist/esm/lib/math-utils.js.map +0 -1
  135. package/dist/esm/lib/validators.js.map +0 -1
@@ -1,348 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
-
16
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
-
18
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
-
20
- var _common = require("../../lib/common");
21
-
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); }; }
23
-
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; } }
25
-
26
- function _extendableBuiltin(cls) {
27
- function ExtendableBuiltin() {
28
- var instance = Reflect.construct(cls, Array.from(arguments));
29
- Object.setPrototypeOf(instance, Object.getPrototypeOf(this));
30
- return instance;
31
- }
32
-
33
- ExtendableBuiltin.prototype = Object.create(cls.prototype, {
34
- constructor: {
35
- value: cls,
36
- enumerable: false,
37
- writable: true,
38
- configurable: true
39
- }
40
- });
41
-
42
- if (Object.setPrototypeOf) {
43
- Object.setPrototypeOf(ExtendableBuiltin, cls);
44
- } else {
45
- ExtendableBuiltin.__proto__ = cls;
46
- }
47
-
48
- return ExtendableBuiltin;
49
- }
50
-
51
- var MathArray = function (_extendableBuiltin2) {
52
- (0, _inherits2.default)(MathArray, _extendableBuiltin2);
53
-
54
- var _super = _createSuper(MathArray);
55
-
56
- function MathArray() {
57
- (0, _classCallCheck2.default)(this, MathArray);
58
- return _super.apply(this, arguments);
59
- }
60
-
61
- (0, _createClass2.default)(MathArray, [{
62
- key: "clone",
63
- value: function clone() {
64
- return new this.constructor().copy(this);
65
- }
66
- }, {
67
- key: "fromArray",
68
- value: function fromArray(array) {
69
- var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
70
-
71
- for (var i = 0; i < this.ELEMENTS; ++i) {
72
- this[i] = array[i + offset];
73
- }
74
-
75
- return this.check();
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
- }
94
- }, {
95
- key: "to",
96
- value: function to(arrayOrObject) {
97
- if (arrayOrObject === this) {
98
- return this;
99
- }
100
-
101
- return (0, _common.isArray)(arrayOrObject) ? this.toArray(arrayOrObject) : this.toObject(arrayOrObject);
102
- }
103
- }, {
104
- key: "toTarget",
105
- value: function toTarget(target) {
106
- return target ? this.to(target) : this;
107
- }
108
- }, {
109
- key: "toFloat32Array",
110
- value: function toFloat32Array() {
111
- return new Float32Array(this);
112
- }
113
- }, {
114
- key: "toString",
115
- value: function toString() {
116
- return this.formatString(_common.config);
117
- }
118
- }, {
119
- key: "formatString",
120
- value: function formatString(opts) {
121
- var string = '';
122
-
123
- for (var i = 0; i < this.ELEMENTS; ++i) {
124
- string += (i > 0 ? ', ' : '') + (0, _common.formatValue)(this[i], opts);
125
- }
126
-
127
- return "".concat(opts.printTypes ? this.constructor.name : '', "[").concat(string, "]");
128
- }
129
- }, {
130
- key: "equals",
131
- value: function equals(array) {
132
- if (!array || this.length !== array.length) {
133
- return false;
134
- }
135
-
136
- for (var i = 0; i < this.ELEMENTS; ++i) {
137
- if (!(0, _common.equals)(this[i], array[i])) {
138
- return false;
139
- }
140
- }
141
-
142
- return true;
143
- }
144
- }, {
145
- key: "exactEquals",
146
- value: function exactEquals(array) {
147
- if (!array || this.length !== array.length) {
148
- return false;
149
- }
150
-
151
- for (var i = 0; i < this.ELEMENTS; ++i) {
152
- if (this[i] !== array[i]) {
153
- return false;
154
- }
155
- }
156
-
157
- return true;
158
- }
159
- }, {
160
- key: "negate",
161
- value: function negate() {
162
- for (var i = 0; i < this.ELEMENTS; ++i) {
163
- this[i] = -this[i];
164
- }
165
-
166
- return this.check();
167
- }
168
- }, {
169
- key: "lerp",
170
- value: function lerp(a, b, t) {
171
- if (t === undefined) {
172
- return this.lerp(this, a, b);
173
- }
174
-
175
- for (var i = 0; i < this.ELEMENTS; ++i) {
176
- var ai = a[i];
177
- this[i] = ai + t * (b[i] - ai);
178
- }
179
-
180
- return this.check();
181
- }
182
- }, {
183
- key: "min",
184
- value: function min(vector) {
185
- for (var i = 0; i < this.ELEMENTS; ++i) {
186
- this[i] = Math.min(vector[i], this[i]);
187
- }
188
-
189
- return this.check();
190
- }
191
- }, {
192
- key: "max",
193
- value: function max(vector) {
194
- for (var i = 0; i < this.ELEMENTS; ++i) {
195
- this[i] = Math.max(vector[i], this[i]);
196
- }
197
-
198
- return this.check();
199
- }
200
- }, {
201
- key: "clamp",
202
- value: function clamp(minVector, maxVector) {
203
- for (var i = 0; i < this.ELEMENTS; ++i) {
204
- this[i] = Math.min(Math.max(this[i], minVector[i]), maxVector[i]);
205
- }
206
-
207
- return this.check();
208
- }
209
- }, {
210
- key: "add",
211
- value: function add() {
212
- for (var _len = arguments.length, vectors = new Array(_len), _key = 0; _key < _len; _key++) {
213
- vectors[_key] = arguments[_key];
214
- }
215
-
216
- for (var _i = 0, _vectors = vectors; _i < _vectors.length; _i++) {
217
- var _vector = _vectors[_i];
218
-
219
- for (var i = 0; i < this.ELEMENTS; ++i) {
220
- this[i] += _vector[i];
221
- }
222
- }
223
-
224
- return this.check();
225
- }
226
- }, {
227
- key: "subtract",
228
- value: function subtract() {
229
- for (var _len2 = arguments.length, vectors = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
230
- vectors[_key2] = arguments[_key2];
231
- }
232
-
233
- for (var _i2 = 0, _vectors2 = vectors; _i2 < _vectors2.length; _i2++) {
234
- var _vector2 = _vectors2[_i2];
235
-
236
- for (var i = 0; i < this.ELEMENTS; ++i) {
237
- this[i] -= _vector2[i];
238
- }
239
- }
240
-
241
- return this.check();
242
- }
243
- }, {
244
- key: "scale",
245
- value: function scale(_scale) {
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
- }
254
- }
255
-
256
- return this.check();
257
- }
258
- }, {
259
- key: "multiplyByScalar",
260
- value: function multiplyByScalar(scalar) {
261
- for (var i = 0; i < this.ELEMENTS; ++i) {
262
- this[i] *= scalar;
263
- }
264
-
265
- return this.check();
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
- }
287
- }, {
288
- key: "sub",
289
- value: function sub(a) {
290
- return this.subtract(a);
291
- }
292
- }, {
293
- key: "setScalar",
294
- value: function setScalar(a) {
295
- for (var i = 0; i < this.ELEMENTS; ++i) {
296
- this[i] = a;
297
- }
298
-
299
- return this.check();
300
- }
301
- }, {
302
- key: "addScalar",
303
- value: function addScalar(a) {
304
- for (var i = 0; i < this.ELEMENTS; ++i) {
305
- this[i] += a;
306
- }
307
-
308
- return this.check();
309
- }
310
- }, {
311
- key: "subScalar",
312
- value: function subScalar(a) {
313
- return this.addScalar(-a);
314
- }
315
- }, {
316
- key: "multiplyScalar",
317
- value: function multiplyScalar(scalar) {
318
- for (var i = 0; i < this.ELEMENTS; ++i) {
319
- this[i] *= scalar;
320
- }
321
-
322
- return this.check();
323
- }
324
- }, {
325
- key: "divideScalar",
326
- value: function divideScalar(a) {
327
- return this.multiplyByScalar(1 / a);
328
- }
329
- }, {
330
- key: "clampScalar",
331
- value: function clampScalar(min, max) {
332
- for (var i = 0; i < this.ELEMENTS; ++i) {
333
- this[i] = Math.min(Math.max(this[i], min), max);
334
- }
335
-
336
- return this.check();
337
- }
338
- }, {
339
- key: "elements",
340
- get: function get() {
341
- return this;
342
- }
343
- }]);
344
- return MathArray;
345
- }(_extendableBuiltin(Array));
346
-
347
- exports.default = MathArray;
348
- //# sourceMappingURL=math-array.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/classes/base/math-array.ts"],"names":["MathArray","constructor","copy","array","offset","i","ELEMENTS","check","targetArray","arrayOrObject","Array","isArray","fromObject","toArray","toObject","target","to","Float32Array","formatString","config","opts","string","printTypes","name","length","a","b","t","undefined","lerp","ai","vector","Math","min","max","minVector","maxVector","vectors","scale","scalar","debug","validate","Error","valid","Number","isFinite","subtract","addScalar","multiplyByScalar"],"mappings":"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","sourcesContent":["// math.gl, MIT License\nimport {NumericArray} from '@math.gl/types';\nimport {ConfigurationOptions, config, formatValue, equals, isArray} from '../../lib/common';\n\n/** Base class for vectors and matrices */\nexport default abstract class MathArray extends Array<number> {\n /** Number of elements (values) in this array */\n abstract get ELEMENTS(): number;\n\n abstract copy(vector: Readonly<NumericArray>): this;\n\n abstract fromObject(object: object): this;\n\n // Common methods\n\n /**\n * Clone the current object\n * @returns a new copy of this object\n */\n clone(): this {\n // @ts-expect-error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.\n return new this.constructor().copy(this); // eslint-disable-line\n }\n\n fromArray(array: Readonly<NumericArray>, offset: number = 0): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = array[i + offset];\n }\n return this.check();\n }\n\n toArray<TypedArray>(targetArray: TypedArray, offset?: number): TypedArray;\n toArray(targetArray?: number[], offset?: number): NumericArray;\n\n toArray(targetArray: NumericArray = [], offset: number = 0): NumericArray {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n targetArray[offset + i] = this[i];\n }\n return targetArray;\n }\n\n from(arrayOrObject: Readonly<NumericArray> | object): this {\n return Array.isArray(arrayOrObject) ? this.copy(arrayOrObject) : this.fromObject(arrayOrObject);\n }\n\n to<T extends NumericArray | object>(arrayOrObject: T): T {\n // @ts-ignore\n if (arrayOrObject === this) {\n return this;\n }\n // @ts-expect-error TS2339: Property 'toObject' does not exist on type 'MathArray'.\n return isArray(arrayOrObject) ? this.toArray(arrayOrObject) : this.toObject(arrayOrObject);\n }\n\n toTarget(target: this): this {\n return target ? this.to(target) : this;\n }\n\n /** @deprecated */\n toFloat32Array(): Float32Array {\n return new Float32Array(this);\n }\n\n toString(): string {\n return this.formatString(config);\n }\n\n /** Formats string according to options */\n formatString(opts: ConfigurationOptions): string {\n let string = '';\n for (let i = 0; i < this.ELEMENTS; ++i) {\n string += (i > 0 ? ', ' : '') + formatValue(this[i], opts);\n }\n return `${opts.printTypes ? this.constructor.name : ''}[${string}]`;\n }\n\n equals(array: Readonly<NumericArray>): boolean {\n if (!array || this.length !== array.length) {\n return false;\n }\n for (let i = 0; i < this.ELEMENTS; ++i) {\n if (!equals(this[i], array[i])) {\n return false;\n }\n }\n return true;\n }\n\n exactEquals(array: Readonly<NumericArray>): boolean {\n if (!array || this.length !== array.length) {\n return false;\n }\n for (let i = 0; i < this.ELEMENTS; ++i) {\n if (this[i] !== array[i]) {\n return false;\n }\n }\n return true;\n }\n\n // Modifiers\n\n /** Negates all values in this object */\n negate(): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = -this[i];\n }\n return this.check();\n }\n\n /** Linearly interpolates between two values */\n lerp(a: Readonly<NumericArray>, t: number): this;\n lerp(a: Readonly<NumericArray>, b: Readonly<NumericArray>, t: number): this;\n\n lerp(a: Readonly<NumericArray>, b: Readonly<NumericArray> | number, t?: number): this {\n if (t === undefined) {\n return this.lerp(this, a, b as number);\n }\n for (let i = 0; i < this.ELEMENTS; ++i) {\n const ai = a[i];\n this[i] = ai + t * (b[i] - ai);\n }\n return this.check();\n }\n\n /** Minimal */\n min(vector: Readonly<NumericArray>): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = Math.min(vector[i], this[i]);\n }\n return this.check();\n }\n\n /** Maximal */\n max(vector: Readonly<NumericArray>): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = Math.max(vector[i], this[i]);\n }\n return this.check();\n }\n\n clamp(minVector: Readonly<NumericArray>, maxVector: Readonly<NumericArray>): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = Math.min(Math.max(this[i], minVector[i]), maxVector[i]);\n }\n return this.check();\n }\n\n add(...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 subtract(...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 scale(scale: number | Readonly<NumericArray>): this {\n if (typeof scale === 'number') {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] *= scale;\n }\n } else {\n for (let i = 0; i < this.ELEMENTS && i < scale.length; ++i) {\n this[i] *= scale[i];\n }\n }\n return this.check();\n }\n\n /**\n * Multiplies all elements by `scale`\n * Note: `Matrix4.multiplyByScalar` only scales its 3x3 \"minor\"\n */\n multiplyByScalar(scalar: number): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] *= scalar;\n }\n return this.check();\n }\n\n // Debug checks\n\n /** Throws an error if array length is incorrect or contains illegal values */\n check(): this {\n if (config.debug && !this.validate()) {\n throw new Error(`math.gl: ${this.constructor.name} some fields set to invalid numbers'`);\n }\n return this;\n }\n\n /** Returns false if the array length is incorrect or contains illegal values */\n validate(): boolean {\n let valid = this.length === this.ELEMENTS;\n for (let i = 0; i < this.ELEMENTS; ++i) {\n valid = valid && Number.isFinite(this[i]);\n }\n return valid;\n }\n\n // three.js compatibility\n\n /** @deprecated */\n sub(a: Readonly<NumericArray>): this {\n return this.subtract(a);\n }\n\n /** @deprecated */\n setScalar(a: number): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = a;\n }\n return this.check();\n }\n\n /** @deprecated */\n addScalar(a: number): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] += a;\n }\n return this.check();\n }\n\n /** @deprecated */\n subScalar(a: number): this {\n return this.addScalar(-a);\n }\n\n /** @deprecated */\n multiplyScalar(scalar: number): this {\n // Multiplies all elements\n // `Matrix4.scale` only scales its 3x3 \"minor\"\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] *= scalar;\n }\n return this.check();\n }\n\n /** @deprecated */\n divideScalar(a: number): this {\n return this.multiplyByScalar(1 / a);\n }\n\n /** @deprecated */\n clampScalar(min: number, max: number): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = Math.min(Math.max(this[i], min), max);\n }\n return this.check();\n }\n\n /** @deprecated */\n get elements(): NumericArray {\n return this;\n }\n}\n"],"file":"math-array.js"}
@@ -1,108 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
-
16
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
-
18
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
-
20
- var _mathArray = _interopRequireDefault(require("./math-array"));
21
-
22
- var _validators = require("../../lib/validators");
23
-
24
- var _common = require("../../lib/common");
25
-
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); }; }
27
-
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; } }
29
-
30
- var Matrix = function (_MathArray) {
31
- (0, _inherits2.default)(Matrix, _MathArray);
32
-
33
- var _super = _createSuper(Matrix);
34
-
35
- function Matrix() {
36
- (0, _classCallCheck2.default)(this, Matrix);
37
- return _super.apply(this, arguments);
38
- }
39
-
40
- (0, _createClass2.default)(Matrix, [{
41
- key: "toString",
42
- value: function toString() {
43
- var string = '[';
44
-
45
- if (_common.config.printRowMajor) {
46
- string += 'row-major:';
47
-
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:';
55
-
56
- for (var i = 0; i < this.ELEMENTS; ++i) {
57
- string += " ".concat(this[i]);
58
- }
59
- }
60
-
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
- }
89
-
90
- return result;
91
- }
92
- }, {
93
- key: "setColumn",
94
- value: function setColumn(columnIndex, columnVector) {
95
- var firstIndex = columnIndex * this.RANK;
96
-
97
- for (var i = 0; i < this.RANK; ++i) {
98
- this[firstIndex + i] = columnVector[i];
99
- }
100
-
101
- return this;
102
- }
103
- }]);
104
- return Matrix;
105
- }(_mathArray.default);
106
-
107
- exports.default = Matrix;
108
- //# sourceMappingURL=matrix.js.map
@@ -1 +0,0 @@
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"}