mat3x3: add matrix inverse
This commit is contained in:
parent
c55c0e21a9
commit
1f5fdcc197
@ -184,3 +184,20 @@ inline constexpr float determinant(mat<3, 3, T> const& a)
|
|||||||
a[0][1] * f1 +
|
a[0][1] * f1 +
|
||||||
a[0][2] * f2;
|
a[0][2] * f2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline constexpr mat<3, 3, T> inverse(mat<3, 3, T> const& a)
|
||||||
|
{
|
||||||
|
mat<3, 3, T> m;
|
||||||
|
float idet = 1.0f / determinant(a);
|
||||||
|
m[0][0] = cofactor(a, 0, 0) * idet;
|
||||||
|
m[1][0] = cofactor(a, 0, 1) * idet;
|
||||||
|
m[2][0] = cofactor(a, 0, 2) * idet;
|
||||||
|
m[0][1] = cofactor(a, 1, 0) * idet;
|
||||||
|
m[1][1] = cofactor(a, 1, 1) * idet;
|
||||||
|
m[2][1] = cofactor(a, 1, 2) * idet;
|
||||||
|
m[0][2] = cofactor(a, 2, 0) * idet;
|
||||||
|
m[1][2] = cofactor(a, 2, 1) * idet;
|
||||||
|
m[2][2] = cofactor(a, 2, 2) * idet;
|
||||||
|
return m;
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user