@woosh/meep-engine 2.109.15 → 2.109.16

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/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "description": "Fully featured ECS game engine written in JavaScript",
6
6
  "type": "module",
7
7
  "author": "Alexander Goldring",
8
- "version": "2.109.15",
8
+ "version": "2.109.16",
9
9
  "main": "build/meep.module.js",
10
10
  "module": "build/meep.module.js",
11
11
  "exports": {
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Inverts a 4x4 matrix
3
+ * @see Adapted from glMatrix
4
+ * @param {Float32Array|number[]|mat4} out
5
+ * @param {Float32Array|number[]|mat4} input
6
+ * @returns {boolean}
7
+ */
8
+ export function m4_invert(out: Float32Array | number[] | mat4, input: Float32Array | number[] | mat4): boolean;
9
+ //# sourceMappingURL=m4_invert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"m4_invert.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/mat4/m4_invert.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,+BAJW,YAAY,GAAC,MAAM,EAAE,OAAK,SAC1B,YAAY,GAAC,MAAM,EAAE,OAAK,GACxB,OAAO,CA+DnB"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Inverts a 4x4 matrix
3
+ * @see Adapted from glMatrix
4
+ * @param {Float32Array|number[]|mat4} out
5
+ * @param {Float32Array|number[]|mat4} input
6
+ * @returns {boolean}
7
+ */
8
+ export function m4_invert(out, input) {
9
+
10
+ const a00 = input[0],
11
+ a01 = input[1],
12
+ a02 = input[2],
13
+ a03 = input[3];
14
+ const a10 = input[4],
15
+ a11 = input[5],
16
+ a12 = input[6],
17
+ a13 = input[7];
18
+ const a20 = input[8],
19
+ a21 = input[9],
20
+ a22 = input[10],
21
+ a23 = input[11];
22
+ const a30 = input[12],
23
+ a31 = input[13],
24
+ a32 = input[14],
25
+ a33 = input[15];
26
+
27
+ const b00 = a00 * a11 - a01 * a10;
28
+ const b01 = a00 * a12 - a02 * a10;
29
+ const b02 = a00 * a13 - a03 * a10;
30
+ const b03 = a01 * a12 - a02 * a11;
31
+ const b04 = a01 * a13 - a03 * a11;
32
+ const b05 = a02 * a13 - a03 * a12;
33
+ const b06 = a20 * a31 - a21 * a30;
34
+ const b07 = a20 * a32 - a22 * a30;
35
+ const b08 = a20 * a33 - a23 * a30;
36
+ const b09 = a21 * a32 - a22 * a31;
37
+ const b10 = a21 * a33 - a23 * a31;
38
+ const b11 = a22 * a33 - a23 * a32;
39
+
40
+ // Calculate the determinant
41
+ const det =
42
+ b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;
43
+
44
+ if (!det) {
45
+ // determinant is 0, can't invert
46
+ return false;
47
+ }
48
+
49
+ const inv_det = 1.0 / det;
50
+
51
+ out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * inv_det;
52
+ out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * inv_det;
53
+ out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * inv_det;
54
+ out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * inv_det;
55
+ out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * inv_det;
56
+ out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * inv_det;
57
+ out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * inv_det;
58
+ out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * inv_det;
59
+ out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * inv_det;
60
+ out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * inv_det;
61
+ out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * inv_det;
62
+ out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * inv_det;
63
+ out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * inv_det;
64
+ out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * inv_det;
65
+ out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * inv_det;
66
+ out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * inv_det;
67
+
68
+ return true;
69
+ }