@flighthq/geometry 0.2.0 → 0.2.1-next.410.a23f189

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/matrix3.js CHANGED
@@ -12,81 +12,37 @@ export function copyMatrix3ColumnFromVector3(out, column, source) {
12
12
  if (column > 2) {
13
13
  throw new RangeError('Column ' + column + ' out of bounds (2)');
14
14
  }
15
- else if (column === 0) {
16
- out.m[0] = source.x;
17
- out.m[3] = source.y;
18
- out.m[6] = source.z;
19
- }
20
- else if (column === 1) {
21
- out.m[1] = source.x;
22
- out.m[4] = source.y;
23
- out.m[7] = source.z;
24
- }
25
- else {
26
- out.m[2] = source.x;
27
- out.m[5] = source.y;
28
- out.m[8] = source.z;
29
- }
15
+ // Column-major: a column's three elements are contiguous at 3*column + row.
16
+ const base = column * 3;
17
+ out.m[base] = source.x;
18
+ out.m[base + 1] = source.y;
19
+ out.m[base + 2] = source.z;
30
20
  }
31
21
  export function copyMatrix3ColumnToVector3(out, column, source) {
32
22
  if (column > 2) {
33
23
  throw new RangeError('Column ' + column + ' out of bounds (2)');
34
24
  }
35
- else if (column === 0) {
36
- out.x = source.m[0];
37
- out.y = source.m[3];
38
- out.z = source.m[6];
39
- }
40
- else if (column === 1) {
41
- out.x = source.m[1];
42
- out.y = source.m[4];
43
- out.z = source.m[7];
44
- }
45
- else {
46
- out.x = source.m[2];
47
- out.y = source.m[5];
48
- out.z = source.m[8];
49
- }
25
+ const base = column * 3;
26
+ out.x = source.m[base];
27
+ out.y = source.m[base + 1];
28
+ out.z = source.m[base + 2];
50
29
  }
51
30
  export function copyMatrix3RowFromVector3(out, row, source) {
52
31
  if (row > 2) {
53
32
  throw new RangeError('Row ' + row + ' out of bounds (2)');
54
33
  }
55
- else if (row === 0) {
56
- out.m[0] = source.x;
57
- out.m[1] = source.y;
58
- out.m[2] = source.z;
59
- }
60
- else if (row === 1) {
61
- out.m[3] = source.x;
62
- out.m[4] = source.y;
63
- out.m[5] = source.z;
64
- }
65
- else {
66
- out.m[6] = source.x;
67
- out.m[7] = source.y;
68
- out.m[8] = source.z;
69
- }
34
+ // Column-major: a row's three elements are strided by 3 at 3*column + row.
35
+ out.m[row] = source.x;
36
+ out.m[row + 3] = source.y;
37
+ out.m[row + 6] = source.z;
70
38
  }
71
39
  export function copyMatrix3RowToVector3(out, row, source) {
72
40
  if (row > 2) {
73
41
  throw new RangeError('Row ' + row + ' out of bounds (2)');
74
42
  }
75
- else if (row === 0) {
76
- out.x = source.m[0];
77
- out.y = source.m[1];
78
- out.z = source.m[2];
79
- }
80
- else if (row === 1) {
81
- out.x = source.m[3];
82
- out.y = source.m[4];
83
- out.z = source.m[5];
84
- }
85
- else {
86
- out.x = source.m[6];
87
- out.y = source.m[7];
88
- out.z = source.m[8];
89
- }
43
+ out.x = source.m[row];
44
+ out.y = source.m[row + 3];
45
+ out.z = source.m[row + 6];
90
46
  }
91
47
  /**
92
48
  * A 3×3 homogeneous matrix.
@@ -95,7 +51,9 @@ export function copyMatrix3RowToVector3(out, row, source) {
95
51
  * [ m10 m11 m12 ]
96
52
  * [ m20 m21 m22 ]
97
53
  *
98
- * Storage is row-major.
54
+ * Storage is column-major: element (row r, column c) lives at m[3 * c + r]. This matches Matrix4 and
55
+ * the GL/GLSL/WGSL uniform ABI, so a Matrix3 uploads through `uniformMatrix3fv(loc, false, m)` with no
56
+ * transpose. The constructor still takes its nine arguments in reading (row-major) order.
99
57
  */
100
58
  export function createMatrix3(m00, m01, m02, m10, m11, m12, m20, m21, m22) {
101
59
  const m = new Float32Array(__identity);
@@ -103,19 +61,19 @@ export function createMatrix3(m00, m01, m02, m10, m11, m12, m20, m21, m22) {
103
61
  if (m00 !== undefined)
104
62
  m[0] = m00;
105
63
  if (m01 !== undefined)
106
- m[1] = m01;
64
+ m[3] = m01;
107
65
  if (m02 !== undefined)
108
- m[2] = m02;
66
+ m[6] = m02;
109
67
  if (m10 !== undefined)
110
- m[3] = m10;
68
+ m[1] = m10;
111
69
  if (m11 !== undefined)
112
70
  m[4] = m11;
113
71
  if (m12 !== undefined)
114
- m[5] = m12;
72
+ m[7] = m12;
115
73
  if (m20 !== undefined)
116
- m[6] = m20;
74
+ m[2] = m20;
117
75
  if (m21 !== undefined)
118
- m[7] = m21;
76
+ m[5] = m21;
119
77
  if (m22 !== undefined)
120
78
  m[8] = m22;
121
79
  return out;
@@ -132,7 +90,8 @@ export function equalsMatrix3(a, b) {
132
90
  return true;
133
91
  }
134
92
  /**
135
- * Returns the determinant of a 3×3 matrix.
93
+ * Returns the determinant of a 3×3 matrix. The determinant is transpose-invariant, so this flat-index
94
+ * form is independent of row/column-major storage.
136
95
  */
137
96
  export function getMatrix3Determinant(source) {
138
97
  const m = source.m;
@@ -144,7 +103,7 @@ export function getMatrix3Determinant(source) {
144
103
  m[0] * m[5] * m[7]);
145
104
  }
146
105
  export function getMatrix3Element(source, row, column) {
147
- return source.m[row * 3 + column];
106
+ return source.m[column * 3 + row];
148
107
  }
149
108
  /**
150
109
  * Attempts to invert a 3×3 matrix, writing the result to `out`. Returns `true` on success.
@@ -154,57 +113,59 @@ export function getMatrix3Element(source, row, column) {
154
113
  export function inverseMatrix3(out, source) {
155
114
  const _out = out.m;
156
115
  const _in = source.m;
157
- const m0 = _in[0];
158
- const m1 = _in[1];
159
- const m2 = _in[2];
160
- const m3 = _in[3];
161
- const m4 = _in[4];
162
- const m5 = _in[5];
163
- const m6 = _in[6];
164
- const m7 = _in[7];
165
- const m8 = _in[8];
116
+ // Column-major element reads: a<row><col> = _in[3 * col + row].
117
+ const a00 = _in[0];
118
+ const a10 = _in[1];
119
+ const a20 = _in[2];
120
+ const a01 = _in[3];
121
+ const a11 = _in[4];
122
+ const a21 = _in[5];
123
+ const a02 = _in[6];
124
+ const a12 = _in[7];
125
+ const a22 = _in[8];
166
126
  if (isAffineMatrix3(source)) {
167
- // Affine fast path
168
- const det = m0 * m4 - m1 * m3;
127
+ // Affine fast path: invert the 2×2 linear part, then map the translation column through it.
128
+ const det = a00 * a11 - a01 * a10;
169
129
  if (det === 0) {
170
130
  _out.fill(NaN);
171
131
  return false;
172
132
  }
173
133
  const invDet = 1 / det;
174
- const out0 = m4 * invDet;
175
- const out1 = -m1 * invDet;
176
- const out3 = -m3 * invDet;
177
- const out4 = m0 * invDet;
178
- _out[0] = out0;
179
- _out[1] = out1;
180
- _out[2] = -(out0 * m2 + out3 * m5);
181
- _out[3] = out3;
182
- _out[4] = out4;
183
- _out[5] = -(out1 * m2 + out4 * m5);
184
- _out[6] = 0;
185
- _out[7] = 0;
134
+ const i00 = a11 * invDet;
135
+ const i01 = -a01 * invDet;
136
+ const i10 = -a10 * invDet;
137
+ const i11 = a00 * invDet;
138
+ _out[0] = i00;
139
+ _out[1] = i10;
140
+ _out[2] = 0;
141
+ _out[3] = i01;
142
+ _out[4] = i11;
143
+ _out[5] = 0;
144
+ _out[6] = -(i00 * a02 + i01 * a12);
145
+ _out[7] = -(i10 * a02 + i11 * a12);
186
146
  _out[8] = 1;
187
147
  return true;
188
148
  }
189
- const det = m0 * m4 * m8 + m1 * m5 * m6 + m2 * m3 * m7 - m2 * m4 * m6 - m1 * m3 * m8 - m0 * m5 * m7;
149
+ const det = a00 * (a11 * a22 - a12 * a21) - a01 * (a10 * a22 - a12 * a20) + a02 * (a10 * a21 - a11 * a20);
190
150
  if (det === 0) {
191
151
  _out.fill(NaN);
192
152
  return false;
193
153
  }
194
154
  const inv = 1 / det;
195
- _out[0] = (m4 * m8 - m5 * m7) * inv;
196
- _out[1] = (m2 * m7 - m1 * m8) * inv;
197
- _out[2] = (m1 * m5 - m2 * m4) * inv;
198
- _out[3] = (m5 * m6 - m3 * m8) * inv;
199
- _out[4] = (m0 * m8 - m2 * m6) * inv;
200
- _out[5] = (m2 * m3 - m0 * m5) * inv;
201
- _out[6] = (m3 * m7 - m4 * m6) * inv;
202
- _out[7] = (m1 * m6 - m0 * m7) * inv;
203
- _out[8] = (m0 * m4 - m1 * m3) * inv;
155
+ _out[0] = (a11 * a22 - a12 * a21) * inv;
156
+ _out[1] = (a12 * a20 - a10 * a22) * inv;
157
+ _out[2] = (a10 * a21 - a11 * a20) * inv;
158
+ _out[3] = (a02 * a21 - a01 * a22) * inv;
159
+ _out[4] = (a00 * a22 - a02 * a20) * inv;
160
+ _out[5] = (a01 * a20 - a00 * a21) * inv;
161
+ _out[6] = (a01 * a12 - a02 * a11) * inv;
162
+ _out[7] = (a02 * a10 - a00 * a12) * inv;
163
+ _out[8] = (a00 * a11 - a01 * a10) * inv;
204
164
  return true;
205
165
  }
206
166
  export function isAffineMatrix3(source) {
207
- return source.m[6] === 0 && source.m[7] === 0 && source.m[8] === 1;
167
+ // Bottom row (2,0),(2,1),(2,2) is column-major m[2], m[5], m[8].
168
+ return source.m[2] === 0 && source.m[5] === 0 && source.m[8] === 1;
208
169
  }
209
170
  /**
210
171
  * out = a * b
@@ -213,52 +174,46 @@ export function multiplyMatrix3(out, a, b) {
213
174
  const _a = a.m;
214
175
  const _b = b.m;
215
176
  const _out = out.m;
177
+ // Column-major element reads: <name><row><col> = _<name>[3 * col + row].
178
+ const a00 = _a[0];
179
+ const a10 = _a[1];
180
+ const a20 = _a[2];
181
+ const a01 = _a[3];
182
+ const a11 = _a[4];
183
+ const a21 = _a[5];
184
+ const a02 = _a[6];
185
+ const a12 = _a[7];
186
+ const a22 = _a[8];
187
+ const b00 = _b[0];
188
+ const b10 = _b[1];
189
+ const b20 = _b[2];
190
+ const b01 = _b[3];
191
+ const b11 = _b[4];
192
+ const b21 = _b[5];
193
+ const b02 = _b[6];
194
+ const b12 = _b[7];
195
+ const b22 = _b[8];
216
196
  if (isAffineMatrix3(a) && isAffineMatrix3(b)) {
217
- const a0 = _a[0];
218
- const a1 = _a[1];
219
- const a2 = _a[2];
220
- const a3 = _a[3];
221
- const a4 = _a[4];
222
- const a5 = _a[5];
223
- const b0 = _b[0];
224
- const b1 = _b[1];
225
- const b2 = _b[2];
226
- const b3 = _b[3];
227
- const b4 = _b[4];
228
- const b5 = _b[5];
229
- _out[0] = a0 * b0 + a1 * b3;
230
- _out[1] = a0 * b1 + a1 * b4;
231
- _out[2] = a0 * b2 + a1 * b5 + a2;
232
- _out[3] = a3 * b0 + a4 * b3;
233
- _out[4] = a3 * b1 + a4 * b4;
234
- _out[5] = a3 * b2 + a4 * b5 + a5;
235
- _out[6] = 0;
236
- _out[7] = 0;
197
+ _out[0] = a00 * b00 + a01 * b10;
198
+ _out[1] = a10 * b00 + a11 * b10;
199
+ _out[2] = 0;
200
+ _out[3] = a00 * b01 + a01 * b11;
201
+ _out[4] = a10 * b01 + a11 * b11;
202
+ _out[5] = 0;
203
+ _out[6] = a00 * b02 + a01 * b12 + a02;
204
+ _out[7] = a10 * b02 + a11 * b12 + a12;
237
205
  _out[8] = 1;
238
206
  return;
239
207
  }
240
- // First row of a * columns of b
241
- const m00 = _a[0] * _b[0] + _a[1] * _b[3] + _a[2] * _b[6];
242
- const m01 = _a[0] * _b[1] + _a[1] * _b[4] + _a[2] * _b[7];
243
- const m02 = _a[0] * _b[2] + _a[1] * _b[5] + _a[2] * _b[8];
244
- // Second row of a * columns of b
245
- const m10 = _a[3] * _b[0] + _a[4] * _b[3] + _a[5] * _b[6];
246
- const m11 = _a[3] * _b[1] + _a[4] * _b[4] + _a[5] * _b[7];
247
- const m12 = _a[3] * _b[2] + _a[4] * _b[5] + _a[5] * _b[8];
248
- // Third row of a * columns of b
249
- const m20 = _a[6] * _b[0] + _a[7] * _b[3] + _a[8] * _b[6];
250
- const m21 = _a[6] * _b[1] + _a[7] * _b[4] + _a[8] * _b[7];
251
- const m22 = _a[6] * _b[2] + _a[7] * _b[5] + _a[8] * _b[8];
252
- // Assign the result to the output matrix
253
- _out[0] = m00;
254
- _out[1] = m01;
255
- _out[2] = m02;
256
- _out[3] = m10;
257
- _out[4] = m11;
258
- _out[5] = m12;
259
- _out[6] = m20;
260
- _out[7] = m21;
261
- _out[8] = m22;
208
+ _out[0] = a00 * b00 + a01 * b10 + a02 * b20;
209
+ _out[1] = a10 * b00 + a11 * b10 + a12 * b20;
210
+ _out[2] = a20 * b00 + a21 * b10 + a22 * b20;
211
+ _out[3] = a00 * b01 + a01 * b11 + a02 * b21;
212
+ _out[4] = a10 * b01 + a11 * b11 + a12 * b21;
213
+ _out[5] = a20 * b01 + a21 * b11 + a22 * b21;
214
+ _out[6] = a00 * b02 + a01 * b12 + a02 * b22;
215
+ _out[7] = a10 * b02 + a11 * b12 + a12 * b22;
216
+ _out[8] = a20 * b02 + a21 * b12 + a22 * b22;
262
217
  }
263
218
  export function rotateMatrix3(out, source, theta) {
264
219
  const c = Math.cos(theta);
@@ -274,46 +229,49 @@ export function rotateMatrix3(out, source, theta) {
274
229
  const a6 = a[6];
275
230
  const a7 = a[7];
276
231
  const a8 = a[8];
277
- o[0] = a0 * c + a1 * s;
278
- o[1] = a0 * -s + a1 * c;
279
- o[2] = a2;
280
- o[3] = a3 * c + a4 * s;
281
- o[4] = a3 * -s + a4 * c;
282
- o[5] = a5;
283
- o[6] = a6 * c + a7 * s;
284
- o[7] = a6 * -s + a7 * c;
232
+ // Post-multiply by the (0,1)-plane rotation: new column 0 = col0·c + col1·s, column 1 = -col0·s + col1·c.
233
+ o[0] = a0 * c + a3 * s;
234
+ o[1] = a1 * c + a4 * s;
235
+ o[2] = a2 * c + a5 * s;
236
+ o[3] = a0 * -s + a3 * c;
237
+ o[4] = a1 * -s + a4 * c;
238
+ o[5] = a2 * -s + a5 * c;
239
+ o[6] = a6;
240
+ o[7] = a7;
285
241
  o[8] = a8;
286
242
  }
287
243
  export function scaleMatrix3(out, source, sx, sy) {
288
244
  const a = source.m;
289
245
  const o = out.m;
246
+ // Post-multiply by diag(sx, sy, 1): scale column 0 by sx, column 1 by sy, leave the translation column.
290
247
  o[0] = a[0] * sx;
291
- o[1] = a[1] * sy;
292
- o[2] = a[2];
293
- o[3] = a[3] * sx;
248
+ o[1] = a[1] * sx;
249
+ o[2] = a[2] * sx;
250
+ o[3] = a[3] * sy;
294
251
  o[4] = a[4] * sy;
295
- o[5] = a[5];
296
- o[6] = a[6] * sx;
297
- o[7] = a[7] * sy;
252
+ o[5] = a[5] * sy;
253
+ o[6] = a[6];
254
+ o[7] = a[7];
298
255
  o[8] = a[8];
299
256
  }
300
257
  export function setMatrix3(out, m00, m01, m02, m10, m11, m12, m20, m21, m22) {
301
258
  const _out = out.m;
259
+ // Arguments are in reading (row-major) order; stored column-major at 3 * col + row.
302
260
  _out[0] = m00;
303
- _out[1] = m01;
304
- _out[2] = m02;
305
- _out[3] = m10;
261
+ _out[3] = m01;
262
+ _out[6] = m02;
263
+ _out[1] = m10;
306
264
  _out[4] = m11;
307
- _out[5] = m12;
308
- _out[6] = m20;
309
- _out[7] = m21;
265
+ _out[7] = m12;
266
+ _out[2] = m20;
267
+ _out[5] = m21;
310
268
  _out[8] = m22;
311
269
  }
312
270
  export function setMatrix3Element(out, row, column, value) {
313
- out.m[row * 3 + column] = value;
271
+ out.m[column * 3 + row] = value;
314
272
  }
315
273
  /**
316
- * Reads a Matrix3 from a Float32Array at a byte offset (row-major, 9 floats).
274
+ * Reads a Matrix3 from a Float32Array at a byte offset (column-major, 9 floats).
317
275
  */
318
276
  export function setMatrix3FromFloat32Array(out, offset, source) {
319
277
  const m = out.m;
@@ -323,27 +281,29 @@ export function setMatrix3FromFloat32Array(out, offset, source) {
323
281
  }
324
282
  export function setMatrix3FromMatrix(out, source) {
325
283
  const _out = out.m;
284
+ // The 2D affine [[a,b,tx],[c,d,ty],[0,0,1]] embeds column-major.
326
285
  _out[0] = source.a;
327
- _out[1] = source.b;
328
- _out[2] = source.tx;
329
- _out[3] = source.c;
286
+ _out[1] = source.c;
287
+ _out[2] = 0;
288
+ _out[3] = source.b;
330
289
  _out[4] = source.d;
331
- _out[5] = source.ty;
332
- _out[6] = 0;
333
- _out[7] = 0;
290
+ _out[5] = 0;
291
+ _out[6] = source.tx;
292
+ _out[7] = source.ty;
334
293
  _out[8] = 1;
335
294
  }
336
295
  export function setMatrix3FromMatrix4(out, source) {
337
296
  const _out = out.m;
338
297
  const _source = source.m;
298
+ // Both column-major: copy the upper-left 3×3 straight through, dropping Matrix4's 4th row/column.
339
299
  _out[0] = _source[0];
340
- _out[1] = _source[4];
341
- _out[2] = _source[8];
342
- _out[3] = _source[1];
300
+ _out[1] = _source[1];
301
+ _out[2] = _source[2];
302
+ _out[3] = _source[4];
343
303
  _out[4] = _source[5];
344
- _out[5] = _source[9];
345
- _out[6] = _source[2];
346
- _out[7] = _source[6];
304
+ _out[5] = _source[6];
305
+ _out[6] = _source[8];
306
+ _out[7] = _source[9];
347
307
  _out[8] = _source[10];
348
308
  }
349
309
  export function setMatrix3Identity(out) {
@@ -367,19 +327,22 @@ export function setMatrix3NormalFromMatrix4(out, source) {
367
327
  export function translateMatrix3(out, source, tx, ty) {
368
328
  const a = source.m;
369
329
  const o = out.m;
330
+ // Post-multiply by translate(tx, ty): columns 0 and 1 pass through; the translation column becomes
331
+ // col0·tx + col1·ty + col2.
370
332
  o[0] = a[0];
371
333
  o[1] = a[1];
372
- o[2] = a[0] * tx + a[1] * ty + a[2];
334
+ o[2] = a[2];
373
335
  o[3] = a[3];
374
336
  o[4] = a[4];
375
- o[5] = a[3] * tx + a[4] * ty + a[5];
376
- o[6] = a[6];
377
- o[7] = a[7];
378
- o[8] = a[6] * tx + a[7] * ty + a[8];
337
+ o[5] = a[5];
338
+ o[6] = a[0] * tx + a[3] * ty + a[6];
339
+ o[7] = a[1] * tx + a[4] * ty + a[7];
340
+ o[8] = a[2] * tx + a[5] * ty + a[8];
379
341
  }
380
342
  /**
381
343
  * Transposes a 3×3 matrix (swaps rows and columns). Reads each off-diagonal pair into a
382
- * temporary before writing, so it is safe when `out` aliases `source`.
344
+ * temporary before writing, so it is safe when `out` aliases `source`. The swapped index pairs
345
+ * (1↔3, 2↔6, 5↔7) are the same in row- or column-major storage.
383
346
  */
384
347
  export function transposeMatrix3(out, source) {
385
348
  const s = source.m;
@@ -396,7 +359,7 @@ export function transposeMatrix3(out, source) {
396
359
  o[8] = s[8];
397
360
  }
398
361
  /**
399
- * Writes a Matrix3 into a Float32Array at a byte offset (row-major, 9 floats).
362
+ * Writes a Matrix3 into a Float32Array at a byte offset (column-major, 9 floats).
400
363
  */
401
364
  export function writeMatrix3ToFloat32Array(out, offset, source) {
402
365
  const m = source.m;
@@ -1 +1 @@
1
- {"version":3,"file":"matrix3.js","sourceRoot":"","sources":["../src/matrix3.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"matrix3.js","sourceRoot":"","sources":["../src/matrix3.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"matrix4.d.ts","sourceRoot":"","sources":["../src/matrix4.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"matrix4.d.ts","sourceRoot":"","sources":["../src/matrix4.ts"],"names":[],"mappings":"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"}
package/dist/matrix4.js CHANGED
@@ -691,9 +691,11 @@ export function setMatrix4FromMatrix(out, source) {
691
691
  export function setMatrix4FromMatrix3(out, source) {
692
692
  const _out = out.m;
693
693
  const _source = source.m;
694
- setMatrix4From2D(out, _source[0], _source[1], _source[3], _source[4], _source[2], _source[5]);
695
- _out[2] = _source[6];
696
- _out[6] = _source[7];
694
+ // Column-major Matrix3: linear/translation via (0,0),(0,1),(1,0),(1,1),(0,2),(1,2), then the bottom
695
+ // row (2,0),(2,1),(2,2) into Matrix4's z row.
696
+ setMatrix4From2D(out, _source[0], _source[3], _source[1], _source[4], _source[6], _source[7]);
697
+ _out[2] = _source[2];
698
+ _out[6] = _source[5];
697
699
  _out[10] = _source[8];
698
700
  }
699
701
  /**