MCPcopy
hub / github.com/antimatter15/splat / invert4

Function invert4

main.js:218–252  ·  view source on GitHub ↗
(a)

Source from the content-addressed store, hash-verified

216}
217
218function invert4(a) {
219 let b00 = a[0] * a[5] - a[1] * a[4];
220 let b01 = a[0] * a[6] - a[2] * a[4];
221 let b02 = a[0] * a[7] - a[3] * a[4];
222 let b03 = a[1] * a[6] - a[2] * a[5];
223 let b04 = a[1] * a[7] - a[3] * a[5];
224 let b05 = a[2] * a[7] - a[3] * a[6];
225 let b06 = a[8] * a[13] - a[9] * a[12];
226 let b07 = a[8] * a[14] - a[10] * a[12];
227 let b08 = a[8] * a[15] - a[11] * a[12];
228 let b09 = a[9] * a[14] - a[10] * a[13];
229 let b10 = a[9] * a[15] - a[11] * a[13];
230 let b11 = a[10] * a[15] - a[11] * a[14];
231 let det =
232 b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;
233 if (!det) return null;
234 return [
235 (a[5] * b11 - a[6] * b10 + a[7] * b09) / det,
236 (a[2] * b10 - a[1] * b11 - a[3] * b09) / det,
237 (a[13] * b05 - a[14] * b04 + a[15] * b03) / det,
238 (a[10] * b04 - a[9] * b05 - a[11] * b03) / det,
239 (a[6] * b08 - a[4] * b11 - a[7] * b07) / det,
240 (a[0] * b11 - a[2] * b08 + a[3] * b07) / det,
241 (a[14] * b02 - a[12] * b05 - a[15] * b01) / det,
242 (a[8] * b05 - a[10] * b02 + a[11] * b01) / det,
243 (a[4] * b10 - a[5] * b08 + a[7] * b06) / det,
244 (a[1] * b08 - a[0] * b10 - a[3] * b06) / det,
245 (a[12] * b04 - a[13] * b02 + a[15] * b00) / det,
246 (a[9] * b02 - a[8] * b04 - a[11] * b00) / det,
247 (a[5] * b07 - a[4] * b09 - a[6] * b06) / det,
248 (a[0] * b09 - a[1] * b07 + a[2] * b06) / det,
249 (a[13] * b01 - a[12] * b03 - a[14] * b00) / det,
250 (a[8] * b03 - a[9] * b01 + a[10] * b00) / det,
251 ];
252}
253
254function rotate4(a, rad, x, y, z) {
255 let len = Math.hypot(x, y, z);

Callers 2

mainFunction · 0.85
frameFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected