| 1659 | |
| 1660 | COVERAGE(HMM_DeterminantM4, 1) |
| 1661 | static inline float HMM_DeterminantM4(HMM_Mat4 Matrix) |
| 1662 | { |
| 1663 | ASSERT_COVERED(HMM_DeterminantM4); |
| 1664 | |
| 1665 | HMM_Vec3 C01 = HMM_Cross(Matrix.Columns[0].XYZ, Matrix.Columns[1].XYZ); |
| 1666 | HMM_Vec3 C23 = HMM_Cross(Matrix.Columns[2].XYZ, Matrix.Columns[3].XYZ); |
| 1667 | HMM_Vec3 B10 = HMM_SubV3(HMM_MulV3F(Matrix.Columns[0].XYZ, Matrix.Columns[1].W), HMM_MulV3F(Matrix.Columns[1].XYZ, Matrix.Columns[0].W)); |
| 1668 | HMM_Vec3 B32 = HMM_SubV3(HMM_MulV3F(Matrix.Columns[2].XYZ, Matrix.Columns[3].W), HMM_MulV3F(Matrix.Columns[3].XYZ, Matrix.Columns[2].W)); |
| 1669 | |
| 1670 | return HMM_DotV3(C01, B32) + HMM_DotV3(C23, B10); |
| 1671 | } |
| 1672 | |
| 1673 | COVERAGE(HMM_InvGeneralM4, 1) |
| 1674 | // Returns a general-purpose inverse of an HMM_Mat4. Note that special-purpose inverses of many transformations |
no test coverage detected