45 #ifndef AI_MATRIX3x3_H_INC 46 #define AI_MATRIX3x3_H_INC 48 #include "./Compiler/pushpack1.h" 52 template <
typename T>
class aiMatrix4x4t;
53 template <
typename T>
class aiVector2t;
64 template <
typename TReal>
70 a1(static_cast<TReal>(1.0f)), a2(), a3(),
71 b1(), b2(static_cast<TReal>(1.0f)), b3(),
72 c1(), c2(), c3(static_cast<TReal>(1.0f)) {}
74 aiMatrix3x3t ( TReal _a1, TReal _a2, TReal _a3,
75 TReal _b1, TReal _b2, TReal _b3,
76 TReal _c1, TReal _c2, TReal _c3) :
77 a1(_a1), a2(_a2), a3(_a3),
78 b1(_b1), b2(_b2), b3(_b3),
79 c1(_c1), c2(_c2), c3(_c3)
85 aiMatrix3x3t& operator *= (
const aiMatrix3x3t& m);
86 aiMatrix3x3t operator * (
const aiMatrix3x3t& m)
const;
89 TReal* operator[] (
unsigned int p_iIndex);
90 const TReal* operator[] (
unsigned int p_iIndex)
const;
93 bool operator== (
const aiMatrix4x4t<TReal>& m)
const;
94 bool operator!= (
const aiMatrix4x4t<TReal>& m)
const;
96 bool Equal(
const aiMatrix4x4t<TReal>& m, TReal epsilon = 1e-6)
const;
98 template <
typename TOther>
99 operator aiMatrix3x3t<TOther> ()
const;
107 explicit aiMatrix3x3t(
const aiMatrix4x4t<TReal>& pMatrix);
112 aiMatrix3x3t& Transpose();
119 aiMatrix3x3t& Inverse();
120 TReal Determinant()
const;
129 static aiMatrix3x3t& RotationZ(TReal a, aiMatrix3x3t& out);
139 static aiMatrix3x3t& Rotation( TReal a,
140 const aiVector3t<TReal>& axis, aiMatrix3x3t& out);
148 static aiMatrix3x3t& Translation(
const aiVector2t<TReal>& v, aiMatrix3x3t& out);
159 static aiMatrix3x3t& FromToMatrix(
const aiVector3t<TReal>& from,
160 const aiVector3t<TReal>& to, aiMatrix3x3t& out);
183 #include "./Compiler/poppack1.h" 185 #endif // AI_MATRIX3x3_H_INC Definition: matrix3x3.h:174