|
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