17 template <
typename Real>
27 template <
typename Real>
32 template <
typename Real>
36 template <
typename Real>
38 bool* reportInvertibility =
nullptr);
40 template <
typename Real>
43 template <
typename Real>
46 template <
typename Real>
50 template <
typename Real>
55 #if defined(GTE_USE_MAT_VEC) 68 template <
typename Real>
71 #if defined(GTE_USE_MAT_VEC) 72 return atan2(rotation(1, 0), rotation(0, 0));
74 return atan2(rotation(0, 1), rotation(0, 0));
78 template <
typename Real>
83 Real det = M(0, 0)*M(1, 1) - M(0, 1)*M(1, 0);
86 Real invDet = ((Real)1) / det;
89 M(1, 1)*invDet, -M(0, 1)*invDet,
90 -M(1, 0)*invDet, M(0, 0)*invDet
100 if (reportInvertibility)
102 *reportInvertibility = invertible;
107 template <
typename Real>
117 template <
typename Real>
120 Real det = M(0, 0)*M(1, 1) - M(0, 1)*M(1, 0);
124 template <
typename Real>
127 Real trace = M(0, 0) + M(1, 1);
Matrix2x2< Real > Adjoint(Matrix2x2< Real > const &M)
Real Trace(Matrix2x2< Real > const &M)
void MakeRotation(Real angle, Matrix2x2< Real > &rotation)
Quaternion< Real > Inverse(Quaternion< Real > const &d)
Real GetRotationAngle(Matrix2x2< Real > const &rotation)
Real Determinant(GMatrix< Real > const &M)