|
336 | 336 | function inverse(m, dst) {
|
337 | 337 | dst = dst || new MatType(9);
|
338 | 338 |
|
339 |
| - const m00 = m[0 * 4 + 0]; |
340 |
| - const m01 = m[0 * 4 + 1]; |
341 |
| - const m02 = m[0 * 4 + 2]; |
342 |
| - const m10 = m[1 * 4 + 0]; |
343 |
| - const m11 = m[1 * 4 + 1]; |
344 |
| - const m12 = m[1 * 4 + 2]; |
345 |
| - const m20 = m[2 * 4 + 0]; |
346 |
| - const m21 = m[2 * 4 + 1]; |
347 |
| - const m22 = m[2 * 4 + 2]; |
348 |
| - |
349 |
| - const m11_x_m22 = m11 * m22; |
350 |
| - const m21_x_m12 = m21 * m12; |
351 |
| - const m01_x_m22 = m01 * m22; |
352 |
| - const m21_x_m02 = m21 * m02; |
353 |
| - const m01_x_m12 = m01 * m12; |
354 |
| - const m11_x_m02 = m11 * m02; |
355 |
| - |
356 |
| - const invDet = 1 / ( |
357 |
| - m00 * (m11_x_m22 - m21_x_m12) - |
358 |
| - m10 * (m01_x_m22 - m21_x_m02) + |
359 |
| - m20 * (m01_x_m12 - m11_x_m02)); |
360 |
| - |
361 |
| - dst[ 0] = +(m11_x_m22 - m21_x_m12) * invDet; |
362 |
| - dst[ 1] = -(m10 * m22 - m20 * m12) * invDet; |
363 |
| - dst[ 2] = +(m10 * m21 - m20 * m11) * invDet; |
364 |
| - dst[ 3] = -(m01_x_m22 - m21_x_m02) * invDet; |
365 |
| - dst[ 4] = +(m00 * m22 - m20 * m02) * invDet; |
366 |
| - dst[ 5] = -(m00 * m21 - m20 * m01) * invDet; |
367 |
| - dst[ 6] = +(m01_x_m12 - m11_x_m02) * invDet; |
368 |
| - dst[ 7] = -(m00 * m12 - m10 * m02) * invDet; |
369 |
| - dst[ 8] = +(m00 * m11 - m10 * m01) * invDet; |
| 339 | + const m00 = m[0 * 3 + 0]; |
| 340 | + const m01 = m[0 * 3 + 1]; |
| 341 | + const m02 = m[0 * 3 + 2]; |
| 342 | + const m10 = m[1 * 3 + 0]; |
| 343 | + const m11 = m[1 * 3 + 1]; |
| 344 | + const m12 = m[1 * 3 + 2]; |
| 345 | + const m20 = m[2 * 3 + 0]; |
| 346 | + const m21 = m[2 * 3 + 1]; |
| 347 | + const m22 = m[2 * 3 + 2]; |
| 348 | + |
| 349 | + const b01 = m22 * m11 - m12 * m21; |
| 350 | + const b11 = -m22 * m10 + m12 * m20; |
| 351 | + const b21 = m21 * m10 - m11 * m20; |
| 352 | + |
| 353 | + const invDet = m00 * b01 + m01 * b11 + m02 * b21; |
| 354 | + const det = 1.0 / invDet; |
| 355 | + |
| 356 | + dst[0] = b01 * det; |
| 357 | + dst[1] = (-m22 * m01 + m02 * m21) * det; |
| 358 | + dst[2] = ( m12 * m01 - m02 * m11) * det; |
| 359 | + dst[3] = b11 * det; |
| 360 | + dst[4] = ( m22 * m00 - m02 * m20) * det; |
| 361 | + dst[5] = (-m12 * m00 + m02 * m10) * det; |
| 362 | + dst[6] = b21 * det; |
| 363 | + dst[7] = (-m21 * m00 + m01 * m20) * det; |
| 364 | + dst[8] = ( m11 * m00 - m01 * m10) * det; |
370 | 365 |
|
371 | 366 | return dst;
|
372 | 367 | }
|
|
0 commit comments