@math.gl/core 4.0.0-beta.1 → 4.0.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 (124) hide show
  1. package/dist/classes/base/math-array.d.ts +1 -2
  2. package/dist/classes/base/math-array.js +220 -266
  3. package/dist/classes/base/matrix.d.ts +1 -2
  4. package/dist/classes/base/matrix.js +52 -53
  5. package/dist/classes/base/vector.d.ts +1 -2
  6. package/dist/classes/base/vector.js +121 -135
  7. package/dist/classes/euler.d.ts +2 -3
  8. package/dist/classes/euler.js +462 -533
  9. package/dist/classes/matrix3.d.ts +2 -3
  10. package/dist/classes/matrix3.js +185 -190
  11. package/dist/classes/matrix4.d.ts +1 -2
  12. package/dist/classes/matrix4.js +516 -452
  13. package/dist/classes/pose.d.ts +4 -5
  14. package/dist/classes/pose.js +104 -119
  15. package/dist/classes/quaternion.d.ts +1 -2
  16. package/dist/classes/quaternion.js +257 -233
  17. package/dist/classes/spherical-coordinates.d.ts +3 -4
  18. package/dist/classes/spherical-coordinates.js +138 -147
  19. package/dist/classes/vector2.d.ts +1 -2
  20. package/dist/classes/vector2.js +101 -85
  21. package/dist/classes/vector3.d.ts +1 -2
  22. package/dist/classes/vector3.js +125 -136
  23. package/dist/classes/vector4.d.ts +2 -3
  24. package/dist/classes/vector4.js +106 -114
  25. package/dist/gl-matrix/common.d.ts +0 -1
  26. package/dist/gl-matrix/common.js +38 -6
  27. package/dist/gl-matrix/mat3.d.ts +0 -1
  28. package/dist/gl-matrix/mat3.js +699 -425
  29. package/dist/gl-matrix/mat4.d.ts +0 -1
  30. package/dist/gl-matrix/mat4.js +1879 -1339
  31. package/dist/gl-matrix/quat.d.ts +0 -1
  32. package/dist/gl-matrix/quat.js +655 -257
  33. package/dist/gl-matrix/vec2.d.ts +0 -1
  34. package/dist/gl-matrix/vec2.js +529 -212
  35. package/dist/gl-matrix/vec3.d.ts +0 -1
  36. package/dist/gl-matrix/vec3.js +703 -335
  37. package/dist/gl-matrix/vec4.d.ts +0 -1
  38. package/dist/gl-matrix/vec4.js +579 -293
  39. package/dist/gl-matrix/wip/index.d.ts +3 -4
  40. package/dist/gl-matrix/wip/index.js +2 -1
  41. package/dist/gl-matrix/wip/mat2.d.ts +0 -1
  42. package/dist/gl-matrix/wip/mat2.js +333 -157
  43. package/dist/gl-matrix/wip/mat2d.d.ts +0 -1
  44. package/dist/gl-matrix/wip/mat2d.js +377 -202
  45. package/dist/gl-matrix/wip/quat2.d.ts +0 -1
  46. package/dist/gl-matrix/wip/quat2.js +647 -409
  47. package/dist/index.cjs +60 -100
  48. package/dist/index.cjs.map +7 -0
  49. package/dist/index.d.ts +21 -22
  50. package/dist/index.js +23 -16
  51. package/dist/lib/assert.d.ts +0 -1
  52. package/dist/lib/assert.js +3 -4
  53. package/dist/lib/common.d.ts +2 -3
  54. package/dist/lib/common.js +163 -134
  55. package/dist/lib/gl-matrix-extras.d.ts +0 -1
  56. package/dist/lib/gl-matrix-extras.js +39 -36
  57. package/dist/lib/math-utils.d.ts +0 -1
  58. package/dist/lib/math-utils.js +2 -1
  59. package/dist/lib/validators.d.ts +0 -1
  60. package/dist/lib/validators.js +22 -25
  61. package/package.json +5 -6
  62. package/src/classes/matrix3.ts +1 -1
  63. package/dist/classes/base/math-array.d.ts.map +0 -1
  64. package/dist/classes/base/math-array.js.map +0 -1
  65. package/dist/classes/base/matrix.d.ts.map +0 -1
  66. package/dist/classes/base/matrix.js.map +0 -1
  67. package/dist/classes/base/vector.d.ts.map +0 -1
  68. package/dist/classes/base/vector.js.map +0 -1
  69. package/dist/classes/euler.d.ts.map +0 -1
  70. package/dist/classes/euler.js.map +0 -1
  71. package/dist/classes/matrix3.d.ts.map +0 -1
  72. package/dist/classes/matrix3.js.map +0 -1
  73. package/dist/classes/matrix4.d.ts.map +0 -1
  74. package/dist/classes/matrix4.js.map +0 -1
  75. package/dist/classes/pose.d.ts.map +0 -1
  76. package/dist/classes/pose.js.map +0 -1
  77. package/dist/classes/quaternion.d.ts.map +0 -1
  78. package/dist/classes/quaternion.js.map +0 -1
  79. package/dist/classes/spherical-coordinates.d.ts.map +0 -1
  80. package/dist/classes/spherical-coordinates.js.map +0 -1
  81. package/dist/classes/vector2.d.ts.map +0 -1
  82. package/dist/classes/vector2.js.map +0 -1
  83. package/dist/classes/vector3.d.ts.map +0 -1
  84. package/dist/classes/vector3.js.map +0 -1
  85. package/dist/classes/vector4.d.ts.map +0 -1
  86. package/dist/classes/vector4.js.map +0 -1
  87. package/dist/gl-matrix/common.d.ts.map +0 -1
  88. package/dist/gl-matrix/common.js.map +0 -1
  89. package/dist/gl-matrix/mat3.d.ts.map +0 -1
  90. package/dist/gl-matrix/mat3.js.map +0 -1
  91. package/dist/gl-matrix/mat4.d.ts.map +0 -1
  92. package/dist/gl-matrix/mat4.js.map +0 -1
  93. package/dist/gl-matrix/quat.d.ts.map +0 -1
  94. package/dist/gl-matrix/quat.js.map +0 -1
  95. package/dist/gl-matrix/vec2.d.ts.map +0 -1
  96. package/dist/gl-matrix/vec2.js.map +0 -1
  97. package/dist/gl-matrix/vec3.d.ts.map +0 -1
  98. package/dist/gl-matrix/vec3.js.map +0 -1
  99. package/dist/gl-matrix/vec4.d.ts.map +0 -1
  100. package/dist/gl-matrix/vec4.js.map +0 -1
  101. package/dist/gl-matrix/wip/index.d.ts.map +0 -1
  102. package/dist/gl-matrix/wip/index.js.map +0 -1
  103. package/dist/gl-matrix/wip/mat2.d.ts.map +0 -1
  104. package/dist/gl-matrix/wip/mat2.js.map +0 -1
  105. package/dist/gl-matrix/wip/mat2d.d.ts.map +0 -1
  106. package/dist/gl-matrix/wip/mat2d.js.map +0 -1
  107. package/dist/gl-matrix/wip/quat2.d.ts.map +0 -1
  108. package/dist/gl-matrix/wip/quat2.js.map +0 -1
  109. package/dist/gl-matrix/wip/types.d.js +0 -2
  110. package/dist/gl-matrix/wip/types.d.js.map +0 -1
  111. package/dist/index.d.ts.map +0 -1
  112. package/dist/index.js.map +0 -1
  113. package/dist/lib/assert.d.ts.map +0 -1
  114. package/dist/lib/assert.js.map +0 -1
  115. package/dist/lib/common.d.ts.map +0 -1
  116. package/dist/lib/common.js.map +0 -1
  117. package/dist/lib/gl-matrix-extras.d.ts.map +0 -1
  118. package/dist/lib/gl-matrix-extras.js.map +0 -1
  119. package/dist/lib/gl-matrix.d.js +0 -2
  120. package/dist/lib/gl-matrix.d.js.map +0 -1
  121. package/dist/lib/math-utils.d.ts.map +0 -1
  122. package/dist/lib/math-utils.js.map +0 -1
  123. package/dist/lib/validators.d.ts.map +0 -1
  124. package/dist/lib/validators.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { NumericArray } from '@math.gl/types';
2
- import { ConfigurationOptions } from '../../lib/common';
2
+ import { ConfigurationOptions } from "../../lib/common.js";
3
3
  /** Base class for vectors and matrices */
4
4
  export declare abstract class MathArray extends Array<number> {
5
5
  /** Number of elements (values) in this array */
@@ -64,4 +64,3 @@ export declare abstract class MathArray extends Array<number> {
64
64
  /** @deprecated */
65
65
  get elements(): NumericArray;
66
66
  }
67
- //# sourceMappingURL=math-array.d.ts.map
@@ -1,269 +1,223 @@
1
- function _extendableBuiltin(cls) {
2
- function ExtendableBuiltin() {
3
- var instance = Reflect.construct(cls, Array.from(arguments));
4
- Object.setPrototypeOf(instance, Object.getPrototypeOf(this));
5
- return instance;
6
- }
7
-
8
- ExtendableBuiltin.prototype = Object.create(cls.prototype, {
9
- constructor: {
10
- value: cls,
11
- enumerable: false,
12
- writable: true,
13
- configurable: true
14
- }
15
- });
16
-
17
- if (Object.setPrototypeOf) {
18
- Object.setPrototypeOf(ExtendableBuiltin, cls);
19
- } else {
20
- ExtendableBuiltin.__proto__ = cls;
21
- }
22
-
23
- return ExtendableBuiltin;
24
- }
25
-
26
1
  import { config, formatValue, equals, isArray } from "../../lib/common.js";
27
- export class MathArray extends _extendableBuiltin(Array) {
28
- clone() {
29
- return new this.constructor().copy(this);
30
- }
31
-
32
- fromArray(array, offset = 0) {
33
- for (let i = 0; i < this.ELEMENTS; ++i) {
34
- this[i] = array[i + offset];
35
- }
36
-
37
- return this.check();
38
- }
39
-
40
- toArray(targetArray = [], offset = 0) {
41
- for (let i = 0; i < this.ELEMENTS; ++i) {
42
- targetArray[offset + i] = this[i];
43
- }
44
-
45
- return targetArray;
46
- }
47
-
48
- toObject(targetObject) {
49
- return targetObject;
50
- }
51
-
52
- from(arrayOrObject) {
53
- return Array.isArray(arrayOrObject) ? this.copy(arrayOrObject) : this.fromObject(arrayOrObject);
54
- }
55
-
56
- to(arrayOrObject) {
57
- if (arrayOrObject === this) {
58
- return this;
59
- }
60
-
61
- return isArray(arrayOrObject) ? this.toArray(arrayOrObject) : this.toObject(arrayOrObject);
62
- }
63
-
64
- toTarget(target) {
65
- return target ? this.to(target) : this;
66
- }
67
-
68
- toFloat32Array() {
69
- return new Float32Array(this);
70
- }
71
-
72
- toString() {
73
- return this.formatString(config);
74
- }
75
-
76
- formatString(opts) {
77
- let string = '';
78
-
79
- for (let i = 0; i < this.ELEMENTS; ++i) {
80
- string += (i > 0 ? ', ' : '') + formatValue(this[i], opts);
81
- }
82
-
83
- return "".concat(opts.printTypes ? this.constructor.name : '', "[").concat(string, "]");
84
- }
85
-
86
- equals(array) {
87
- if (!array || this.length !== array.length) {
88
- return false;
89
- }
90
-
91
- for (let i = 0; i < this.ELEMENTS; ++i) {
92
- if (!equals(this[i], array[i])) {
93
- return false;
94
- }
95
- }
96
-
97
- return true;
98
- }
99
-
100
- exactEquals(array) {
101
- if (!array || this.length !== array.length) {
102
- return false;
103
- }
104
-
105
- for (let i = 0; i < this.ELEMENTS; ++i) {
106
- if (this[i] !== array[i]) {
107
- return false;
108
- }
109
- }
110
-
111
- return true;
112
- }
113
-
114
- negate() {
115
- for (let i = 0; i < this.ELEMENTS; ++i) {
116
- this[i] = -this[i];
117
- }
118
-
119
- return this.check();
120
- }
121
-
122
- lerp(a, b, t) {
123
- if (t === undefined) {
124
- return this.lerp(this, a, b);
125
- }
126
-
127
- for (let i = 0; i < this.ELEMENTS; ++i) {
128
- const ai = a[i];
129
- const endValue = typeof b === 'number' ? b : b[i];
130
- this[i] = ai + t * (endValue - ai);
131
- }
132
-
133
- return this.check();
134
- }
135
-
136
- min(vector) {
137
- for (let i = 0; i < this.ELEMENTS; ++i) {
138
- this[i] = Math.min(vector[i], this[i]);
139
- }
140
-
141
- return this.check();
142
- }
143
-
144
- max(vector) {
145
- for (let i = 0; i < this.ELEMENTS; ++i) {
146
- this[i] = Math.max(vector[i], this[i]);
147
- }
148
-
149
- return this.check();
150
- }
151
-
152
- clamp(minVector, maxVector) {
153
- for (let i = 0; i < this.ELEMENTS; ++i) {
154
- this[i] = Math.min(Math.max(this[i], minVector[i]), maxVector[i]);
155
- }
156
-
157
- return this.check();
158
- }
159
-
160
- add(...vectors) {
161
- for (const vector of vectors) {
162
- for (let i = 0; i < this.ELEMENTS; ++i) {
163
- this[i] += vector[i];
164
- }
165
- }
166
-
167
- return this.check();
168
- }
169
-
170
- subtract(...vectors) {
171
- for (const vector of vectors) {
172
- for (let i = 0; i < this.ELEMENTS; ++i) {
173
- this[i] -= vector[i];
174
- }
175
- }
176
-
177
- return this.check();
178
- }
179
-
180
- scale(scale) {
181
- if (typeof scale === 'number') {
182
- for (let i = 0; i < this.ELEMENTS; ++i) {
183
- this[i] *= scale;
184
- }
185
- } else {
186
- for (let i = 0; i < this.ELEMENTS && i < scale.length; ++i) {
187
- this[i] *= scale[i];
188
- }
189
- }
190
-
191
- return this.check();
192
- }
193
-
194
- multiplyByScalar(scalar) {
195
- for (let i = 0; i < this.ELEMENTS; ++i) {
196
- this[i] *= scalar;
197
- }
198
-
199
- return this.check();
200
- }
201
-
202
- check() {
203
- if (config.debug && !this.validate()) {
204
- throw new Error("math.gl: ".concat(this.constructor.name, " some fields set to invalid numbers'"));
205
- }
206
-
207
- return this;
208
- }
209
-
210
- validate() {
211
- let valid = this.length === this.ELEMENTS;
212
-
213
- for (let i = 0; i < this.ELEMENTS; ++i) {
214
- valid = valid && Number.isFinite(this[i]);
215
- }
216
-
217
- return valid;
218
- }
219
-
220
- sub(a) {
221
- return this.subtract(a);
222
- }
223
-
224
- setScalar(a) {
225
- for (let i = 0; i < this.ELEMENTS; ++i) {
226
- this[i] = a;
227
- }
228
-
229
- return this.check();
230
- }
231
-
232
- addScalar(a) {
233
- for (let i = 0; i < this.ELEMENTS; ++i) {
234
- this[i] += a;
235
- }
236
-
237
- return this.check();
238
- }
239
-
240
- subScalar(a) {
241
- return this.addScalar(-a);
242
- }
243
-
244
- multiplyScalar(scalar) {
245
- for (let i = 0; i < this.ELEMENTS; ++i) {
246
- this[i] *= scalar;
247
- }
248
-
249
- return this.check();
250
- }
251
-
252
- divideScalar(a) {
253
- return this.multiplyByScalar(1 / a);
254
- }
255
-
256
- clampScalar(min, max) {
257
- for (let i = 0; i < this.ELEMENTS; ++i) {
258
- this[i] = Math.min(Math.max(this[i], min), max);
2
+ /** Base class for vectors and matrices */
3
+ export class MathArray extends Array {
4
+ // Common methods
5
+ /**
6
+ * Clone the current object
7
+ * @returns a new copy of this object
8
+ */
9
+ clone() {
10
+ // @ts-expect-error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.
11
+ return new this.constructor().copy(this); // eslint-disable-line
12
+ }
13
+ fromArray(array, offset = 0) {
14
+ for (let i = 0; i < this.ELEMENTS; ++i) {
15
+ this[i] = array[i + offset];
16
+ }
17
+ return this.check();
18
+ }
19
+ toArray(targetArray = [], offset = 0) {
20
+ for (let i = 0; i < this.ELEMENTS; ++i) {
21
+ targetArray[offset + i] = this[i];
22
+ }
23
+ return targetArray;
24
+ }
25
+ toObject(targetObject) {
26
+ return targetObject;
27
+ }
28
+ from(arrayOrObject) {
29
+ return Array.isArray(arrayOrObject)
30
+ ? this.copy(arrayOrObject)
31
+ : // @ts-ignore
32
+ this.fromObject(arrayOrObject);
33
+ }
34
+ to(arrayOrObject) {
35
+ // @ts-ignore
36
+ if (arrayOrObject === this) {
37
+ return this;
38
+ }
39
+ // @ts-expect-error TS2339: Property 'toObject' does not exist on type 'MathArray'.
40
+ return isArray(arrayOrObject) ? this.toArray(arrayOrObject) : this.toObject(arrayOrObject);
41
+ }
42
+ toTarget(target) {
43
+ return target ? this.to(target) : this;
44
+ }
45
+ /** @deprecated */
46
+ toFloat32Array() {
47
+ return new Float32Array(this);
48
+ }
49
+ toString() {
50
+ return this.formatString(config);
51
+ }
52
+ /** Formats string according to options */
53
+ formatString(opts) {
54
+ let string = '';
55
+ for (let i = 0; i < this.ELEMENTS; ++i) {
56
+ string += (i > 0 ? ', ' : '') + formatValue(this[i], opts);
57
+ }
58
+ return `${opts.printTypes ? this.constructor.name : ''}[${string}]`;
59
+ }
60
+ equals(array) {
61
+ if (!array || this.length !== array.length) {
62
+ return false;
63
+ }
64
+ for (let i = 0; i < this.ELEMENTS; ++i) {
65
+ if (!equals(this[i], array[i])) {
66
+ return false;
67
+ }
68
+ }
69
+ return true;
70
+ }
71
+ exactEquals(array) {
72
+ if (!array || this.length !== array.length) {
73
+ return false;
74
+ }
75
+ for (let i = 0; i < this.ELEMENTS; ++i) {
76
+ if (this[i] !== array[i]) {
77
+ return false;
78
+ }
79
+ }
80
+ return true;
81
+ }
82
+ // Modifiers
83
+ /** Negates all values in this object */
84
+ negate() {
85
+ for (let i = 0; i < this.ELEMENTS; ++i) {
86
+ this[i] = -this[i];
87
+ }
88
+ return this.check();
89
+ }
90
+ lerp(a, b, t) {
91
+ if (t === undefined) {
92
+ return this.lerp(this, a, b);
93
+ }
94
+ for (let i = 0; i < this.ELEMENTS; ++i) {
95
+ const ai = a[i];
96
+ const endValue = typeof b === 'number' ? b : b[i];
97
+ this[i] = ai + t * (endValue - ai);
98
+ }
99
+ return this.check();
100
+ }
101
+ /** Minimal */
102
+ min(vector) {
103
+ for (let i = 0; i < this.ELEMENTS; ++i) {
104
+ this[i] = Math.min(vector[i], this[i]);
105
+ }
106
+ return this.check();
107
+ }
108
+ /** Maximal */
109
+ max(vector) {
110
+ for (let i = 0; i < this.ELEMENTS; ++i) {
111
+ this[i] = Math.max(vector[i], this[i]);
112
+ }
113
+ return this.check();
114
+ }
115
+ clamp(minVector, maxVector) {
116
+ for (let i = 0; i < this.ELEMENTS; ++i) {
117
+ this[i] = Math.min(Math.max(this[i], minVector[i]), maxVector[i]);
118
+ }
119
+ return this.check();
120
+ }
121
+ add(...vectors) {
122
+ for (const vector of vectors) {
123
+ for (let i = 0; i < this.ELEMENTS; ++i) {
124
+ this[i] += vector[i];
125
+ }
126
+ }
127
+ return this.check();
128
+ }
129
+ subtract(...vectors) {
130
+ for (const vector of vectors) {
131
+ for (let i = 0; i < this.ELEMENTS; ++i) {
132
+ this[i] -= vector[i];
133
+ }
134
+ }
135
+ return this.check();
136
+ }
137
+ scale(scale) {
138
+ if (typeof scale === 'number') {
139
+ for (let i = 0; i < this.ELEMENTS; ++i) {
140
+ this[i] *= scale;
141
+ }
142
+ }
143
+ else {
144
+ for (let i = 0; i < this.ELEMENTS && i < scale.length; ++i) {
145
+ this[i] *= scale[i];
146
+ }
147
+ }
148
+ return this.check();
149
+ }
150
+ /**
151
+ * Multiplies all elements by `scale`
152
+ * Note: `Matrix4.multiplyByScalar` only scales its 3x3 "minor"
153
+ */
154
+ multiplyByScalar(scalar) {
155
+ for (let i = 0; i < this.ELEMENTS; ++i) {
156
+ this[i] *= scalar;
157
+ }
158
+ return this.check();
159
+ }
160
+ // Debug checks
161
+ /** Throws an error if array length is incorrect or contains illegal values */
162
+ check() {
163
+ if (config.debug && !this.validate()) {
164
+ throw new Error(`math.gl: ${this.constructor.name} some fields set to invalid numbers'`);
165
+ }
166
+ return this;
167
+ }
168
+ /** Returns false if the array length is incorrect or contains illegal values */
169
+ validate() {
170
+ let valid = this.length === this.ELEMENTS;
171
+ for (let i = 0; i < this.ELEMENTS; ++i) {
172
+ valid = valid && Number.isFinite(this[i]);
173
+ }
174
+ return valid;
175
+ }
176
+ // three.js compatibility
177
+ /** @deprecated */
178
+ sub(a) {
179
+ return this.subtract(a);
180
+ }
181
+ /** @deprecated */
182
+ setScalar(a) {
183
+ for (let i = 0; i < this.ELEMENTS; ++i) {
184
+ this[i] = a;
185
+ }
186
+ return this.check();
187
+ }
188
+ /** @deprecated */
189
+ addScalar(a) {
190
+ for (let i = 0; i < this.ELEMENTS; ++i) {
191
+ this[i] += a;
192
+ }
193
+ return this.check();
194
+ }
195
+ /** @deprecated */
196
+ subScalar(a) {
197
+ return this.addScalar(-a);
198
+ }
199
+ /** @deprecated */
200
+ multiplyScalar(scalar) {
201
+ // Multiplies all elements
202
+ // `Matrix4.scale` only scales its 3x3 "minor"
203
+ for (let i = 0; i < this.ELEMENTS; ++i) {
204
+ this[i] *= scalar;
205
+ }
206
+ return this.check();
207
+ }
208
+ /** @deprecated */
209
+ divideScalar(a) {
210
+ return this.multiplyByScalar(1 / a);
211
+ }
212
+ /** @deprecated */
213
+ clampScalar(min, max) {
214
+ for (let i = 0; i < this.ELEMENTS; ++i) {
215
+ this[i] = Math.min(Math.max(this[i], min), max);
216
+ }
217
+ return this.check();
218
+ }
219
+ /** @deprecated */
220
+ get elements() {
221
+ return this;
259
222
  }
260
-
261
- return this.check();
262
- }
263
-
264
- get elements() {
265
- return this;
266
- }
267
-
268
223
  }
269
- //# sourceMappingURL=math-array.js.map
@@ -1,5 +1,5 @@
1
1
  import { NumericArray } from '@math.gl/types';
2
- import { MathArray } from './math-array';
2
+ import { MathArray } from "./math-array.js";
3
3
  /** Base class for matrices */
4
4
  export declare abstract class Matrix extends MathArray {
5
5
  abstract get RANK(): number;
@@ -11,4 +11,3 @@ export declare abstract class Matrix extends MathArray {
11
11
  getColumn(columnIndex: number): number[];
12
12
  setColumn(columnIndex: number, columnVector: Readonly<NumericArray>): this;
13
13
  }
14
- //# sourceMappingURL=matrix.d.ts.map
@@ -1,62 +1,61 @@
1
1
  import { MathArray } from "./math-array.js";
2
2
  import { checkNumber } from "../../lib/validators.js";
3
3
  import { config } from "../../lib/common.js";
4
+ /** Base class for matrices */
4
5
  export class Matrix extends MathArray {
5
- toString() {
6
- let string = '[';
7
-
8
- if (config.printRowMajor) {
9
- string += 'row-major:';
10
-
11
- for (let row = 0; row < this.RANK; ++row) {
12
- for (let col = 0; col < this.RANK; ++col) {
13
- string += " ".concat(this[col * this.RANK + row]);
6
+ // fromObject(object) {
7
+ // const array = object.elements;
8
+ // return this.fromRowMajor(array);
9
+ // }
10
+ // toObject(object) {
11
+ // const array = object.elements;
12
+ // this.toRowMajor(array);
13
+ // return object;
14
+ // }
15
+ // TODO better override formatString?
16
+ toString() {
17
+ let string = '[';
18
+ if (config.printRowMajor) {
19
+ string += 'row-major:';
20
+ for (let row = 0; row < this.RANK; ++row) {
21
+ for (let col = 0; col < this.RANK; ++col) {
22
+ string += ` ${this[col * this.RANK + row]}`;
23
+ }
24
+ }
14
25
  }
15
- }
16
- } else {
17
- string += 'column-major:';
18
-
19
- for (let i = 0; i < this.ELEMENTS; ++i) {
20
- string += " ".concat(this[i]);
21
- }
26
+ else {
27
+ string += 'column-major:';
28
+ for (let i = 0; i < this.ELEMENTS; ++i) {
29
+ string += ` ${this[i]}`;
30
+ }
31
+ }
32
+ string += ']';
33
+ return string;
34
+ }
35
+ getElementIndex(row, col) {
36
+ return col * this.RANK + row;
37
+ }
38
+ // By default assumes row major indices
39
+ getElement(row, col) {
40
+ return this[col * this.RANK + row];
22
41
  }
23
-
24
- string += ']';
25
- return string;
26
- }
27
-
28
- getElementIndex(row, col) {
29
- return col * this.RANK + row;
30
- }
31
-
32
- getElement(row, col) {
33
- return this[col * this.RANK + row];
34
- }
35
-
36
- setElement(row, col, value) {
37
- this[col * this.RANK + row] = checkNumber(value);
38
- return this;
39
- }
40
-
41
- getColumn(columnIndex, result = new Array(this.RANK).fill(-0)) {
42
- const firstIndex = columnIndex * this.RANK;
43
-
44
- for (let i = 0; i < this.RANK; ++i) {
45
- result[i] = this[firstIndex + i];
42
+ // By default assumes row major indices
43
+ setElement(row, col, value) {
44
+ this[col * this.RANK + row] = checkNumber(value);
45
+ return this;
46
46
  }
47
-
48
- return result;
49
- }
50
-
51
- setColumn(columnIndex, columnVector) {
52
- const firstIndex = columnIndex * this.RANK;
53
-
54
- for (let i = 0; i < this.RANK; ++i) {
55
- this[firstIndex + i] = columnVector[i];
47
+ getColumn(columnIndex, result = new Array(this.RANK).fill(-0)) {
48
+ const firstIndex = columnIndex * this.RANK;
49
+ for (let i = 0; i < this.RANK; ++i) {
50
+ result[i] = this[firstIndex + i];
51
+ }
52
+ return result;
53
+ }
54
+ setColumn(columnIndex, columnVector) {
55
+ const firstIndex = columnIndex * this.RANK;
56
+ for (let i = 0; i < this.RANK; ++i) {
57
+ this[firstIndex + i] = columnVector[i];
58
+ }
59
+ return this;
56
60
  }
57
-
58
- return this;
59
- }
60
-
61
61
  }
62
- //# sourceMappingURL=matrix.js.map
@@ -1,5 +1,5 @@
1
1
  import { NumericArray } from '@math.gl/types';
2
- import { MathArray } from './math-array';
2
+ import { MathArray } from "./math-array.js";
3
3
  /** Base class for vectors with at least 2 elements */
4
4
  export declare abstract class Vector extends MathArray {
5
5
  get x(): number;
@@ -41,4 +41,3 @@ export declare abstract class Vector extends MathArray {
41
41
  multiplyVectors(a: Readonly<NumericArray>, b: Readonly<NumericArray>): this;
42
42
  addScaledVector(a: Readonly<NumericArray>, b: number): this;
43
43
  }
44
- //# sourceMappingURL=vector.d.ts.map