8 template<
typename T =
float>
17 for (
UInt_8 i = 0; i < 4; ++i)
24 for (
UInt_8 i = 0; i < 4; ++i)
25 data[i] = mat.data[i];
34 for (
UInt_8 i = 0; i < 4; ++i)
35 data[i] = mat.data[i];
40 operator const T*()
const
53 result.
x = vec.
x * data[0] + vec.
y * data[2];
54 result.
y = vec.
x * data[1] + vec.
y * data[3];
61 for (
UInt_8 i = 0; i < 4; ++i)
70 for (
UInt_8 i = 0; i < 4; ++i)
71 result.data[i] = data[i] * scalar;
79 for (
UInt_8 i = 0; i < 4; ++i)
84 data[i] += old.data[0 * 2 + column] * mat.data[row * 2 + 0];
85 data[i] += old.data[1 * 2 + column] * mat.data[row * 2 + 1];
94 for (
UInt_8 i = 0; i < 4; ++i)
98 result.data[i] += data[0 * 2 + column] * mat.data[row * 2 + 0];
99 result.data[i] += data[1 * 2 + column] * mat.data[row * 2 + 1];
108 for (
UInt_8 i = 0; i < 4; ++i)
109 result.data[i] = data[2 * (i % 2) + i / 2];
117 for (
UInt_8 i = 0; i < 4; ++i)
118 data[i] = old.data[2 * (i % 2) + i / 2];
124 result.data[0] = data[3];
125 result.data[1] = data[2];
126 result.data[2] = data[1];
127 result.data[3] = data[0];
134 data[0] = old.data[3];
135 data[1] = old.data[2];
136 data[2] = old.data[1];
137 data[3] = old.data[0];
142 return data[0] * data[3] - data[1] * data[2];
150 for (
UInt_8 r = 0; r < 2; ++r)
152 for (
UInt_8 c = 0; c < 2; ++c)
155 result.data[i] = minor.data[i] * Math::Pow<T>(-1, r + c);
166 for (
UInt_8 r = 0; r < 2; ++r)
168 for (
UInt_8 c = 0; c < 2; ++c)
171 data[i] = minor.data[i] * Math::Pow<T>(-1, r + c);
void Cofactor()
Definition: Mat2.h:162
Mat2< T > & operator*=(const T scalar)
Definition: Mat2.h:59
void Inverse()
Definition: Mat2.h:196
Mat2(const Mat2< C > &mat)
Definition: Mat2.h:22
T GetDeterminant() const
Definition: Mat2.h:140
Mat2< T > operator*(const Mat2< T > &mat) const
Definition: Mat2.h:91
Mat2()
Definition: Mat2.h:15
void Transpose()
Definition: Mat2.h:114
Mat2< T > & operator*=(const Mat2< T > &mat)
Definition: Mat2.h:76
Mat2< T > GetCofactor() const
Definition: Mat2.h:145
static Mat2< T > Identity()
Definition: Mat2.h:206
void Minor()
Definition: Mat2.h:131
Mat2< T > & operator=(const Mat2< C > &mat)
Definition: Mat2.h:29
Mat2< T > GetTranspose() const
Definition: Mat2.h:105
void Adjugate()
Definition: Mat2.h:181
Mat2< T > operator*(const T scalar) const
Definition: Mat2.h:67
Mat2< T > GetInverse() const
Definition: Mat2.h:187
Mat2< T > GetMinor() const
Definition: Mat2.h:121
Mat2< T > GetAdjugate() const
Definition: Mat2.h:176
Vec2< T > operator*(Vec2< T > vec) const
Definition: Mat2.h:50
static bool ComCmp(float a, float b)
Combined absolute and relative tolerance comparison for single precision floats.
Definition: Math.cpp:26
Mat2< float > Mat2_f
Definition: Mat2.h:218
unsigned char UInt_8
Definition: Types.h:43
Mat2< double > Mat2_d
Definition: Mat2.h:219