44 #ifndef AI_MATRIX4X4_H_INC 45 #define AI_MATRIX4X4_H_INC 47 #include "./Compiler/pushpack1.h" 51 template<
typename TReal>
class aiMatrix3x3t;
52 template<
typename TReal>
class aiQuaterniont;
64 template<
typename TReal>
73 aiMatrix4x4t ( TReal _a1, TReal _a2, TReal _a3, TReal _a4,
74 TReal _b1, TReal _b2, TReal _b3, TReal _b4,
75 TReal _c1, TReal _c2, TReal _c3, TReal _c4,
76 TReal _d1, TReal _d2, TReal _d3, TReal _d4);
80 explicit aiMatrix4x4t(
const aiMatrix3x3t<TReal>& m);
87 aiMatrix4x4t(
const aiVector3t<TReal>& scaling,
const aiQuaterniont<TReal>& rotation,
88 const aiVector3t<TReal>& position);
93 TReal* operator[] (
unsigned int p_iIndex);
94 const TReal* operator[] (
unsigned int p_iIndex)
const;
97 bool operator== (
const aiMatrix4x4t& m)
const;
98 bool operator!= (
const aiMatrix4x4t& m)
const;
100 bool Equal(
const aiMatrix4x4t& m, TReal epsilon = 1e-6)
const;
103 aiMatrix4x4t& operator *= (
const aiMatrix4x4t& m);
104 aiMatrix4x4t operator * (
const aiMatrix4x4t& m)
const;
106 template <
typename TOther>
107 operator aiMatrix4x4t<TOther> ()
const;
113 aiMatrix4x4t& Transpose();
120 aiMatrix4x4t& Inverse();
121 TReal Determinant()
const;
128 inline bool IsIdentity()
const;
137 void Decompose (aiVector3t<TReal>& scaling, aiQuaterniont<TReal>& rotation,
138 aiVector3t<TReal>& position)
const;
147 void DecomposeNoScaling (aiQuaterniont<TReal>& rotation,
148 aiVector3t<TReal>& position)
const;
157 aiMatrix4x4t& FromEulerAnglesXYZ(TReal x, TReal y, TReal z);
158 aiMatrix4x4t& FromEulerAnglesXYZ(
const aiVector3t<TReal>& blubb);
167 static aiMatrix4x4t& RotationX(TReal a, aiMatrix4x4t& out);
175 static aiMatrix4x4t& RotationY(TReal a, aiMatrix4x4t& out);
183 static aiMatrix4x4t& RotationZ(TReal a, aiMatrix4x4t& out);
192 static aiMatrix4x4t& Rotation(TReal a,
const aiVector3t<TReal>& axis,
201 static aiMatrix4x4t& Translation(
const aiVector3t<TReal>& v, aiMatrix4x4t& out);
209 static aiMatrix4x4t& Scaling(
const aiVector3t<TReal>& v, aiMatrix4x4t& out);
220 static aiMatrix4x4t& FromToMatrix(
const aiVector3t<TReal>& from,
221 const aiVector3t<TReal>& to, aiMatrix4x4t& out);
225 TReal a1, a2, a3, a4;
226 TReal b1, b2, b3, b4;
227 TReal c1, c2, c3, c4;
228 TReal d1, d2, d3, d4;
237 float a1, a2, a3, a4;
238 float b1, b2, b3, b4;
239 float c1, c2, c3, c4;
240 float d1, d2, d3, d4;
244 #endif // __cplusplus 246 #include "./Compiler/poppack1.h" 248 #endif // AI_MATRIX4X4_H_INC Definition: matrix4x4.h:236