46 #ifndef AI_MATRIX4X4_H_INC 47 #define AI_MATRIX4X4_H_INC 54 template<
typename TReal>
class aiMatrix3x3t;
55 template<
typename TReal>
class aiQuaterniont;
67 template<
typename TReal>
76 aiMatrix4x4t ( TReal _a1, TReal _a2, TReal _a3, TReal _a4,
77 TReal _b1, TReal _b2, TReal _b3, TReal _b4,
78 TReal _c1, TReal _c2, TReal _c3, TReal _c4,
79 TReal _d1, TReal _d2, TReal _d3, TReal _d4);
83 explicit aiMatrix4x4t(
const aiMatrix3x3t<TReal>& m);
90 aiMatrix4x4t(
const aiVector3t<TReal>& scaling,
const aiQuaterniont<TReal>&
rotation,
91 const aiVector3t<TReal>& position);
100 TReal* operator[] (
unsigned int p_iIndex);
105 const TReal* operator[] (
unsigned int p_iIndex)
const;
108 bool operator== (
const aiMatrix4x4t& m)
const;
109 bool operator!= (
const aiMatrix4x4t& m)
const;
111 bool Equal(
const aiMatrix4x4t& m, TReal
epsilon = 1
e-6)
const;
114 aiMatrix4x4t& operator *= (
const aiMatrix4x4t& m);
115 aiMatrix4x4t operator * (
const aiMatrix4x4t& m)
const;
116 aiMatrix4x4t operator * (
const TReal& aFloat)
const;
117 aiMatrix4x4t operator + (
const aiMatrix4x4t& aMatrix)
const;
119 template <
typename TOther>
120 operator aiMatrix4x4t<TOther> ()
const;
126 aiMatrix4x4t& Transpose();
133 aiMatrix4x4t& Inverse();
134 TReal Determinant()
const;
141 inline bool IsIdentity()
const;
150 void Decompose (aiVector3t<TReal>& scaling, aiQuaterniont<TReal>&
rotation,
151 aiVector3t<TReal>& position)
const;
161 void Decompose(aiVector3t<TReal>& pScaling, aiVector3t<TReal>& pRotation, aiVector3t<TReal>& pPosition)
const;
172 void Decompose(aiVector3t<TReal>& pScaling, aiVector3t<TReal>& pRotationAxis, TReal& pRotationAngle, aiVector3t<TReal>& pPosition)
const;
181 void DecomposeNoScaling (aiQuaterniont<TReal>&
rotation,
182 aiVector3t<TReal>& position)
const;
191 aiMatrix4x4t& FromEulerAnglesXYZ(TReal x, TReal y, TReal z);
192 aiMatrix4x4t& FromEulerAnglesXYZ(
const aiVector3t<TReal>& blubb);
201 static aiMatrix4x4t& RotationX(TReal a, aiMatrix4x4t& out);
209 static aiMatrix4x4t& RotationY(TReal a, aiMatrix4x4t& out);
217 static aiMatrix4x4t& RotationZ(TReal a, aiMatrix4x4t& out);
226 static aiMatrix4x4t& Rotation(TReal a,
const aiVector3t<TReal>&
axis,
235 static aiMatrix4x4t& Translation(
const aiVector3t<TReal>& v,
244 static aiMatrix4x4t& Scaling(
const aiVector3t<TReal>& v, aiMatrix4x4t& out);
255 static aiMatrix4x4t& FromToMatrix(
const aiVector3t<TReal>& from,
256 const aiVector3t<TReal>& to, aiMatrix4x4t& out);
259 TReal a1, a2, a3, a4;
260 TReal b1, b2, b3, b4;
261 TReal c1, c2, c3, c4;
262 TReal d1, d2, d3, d4;
270 ai_real a1, a2, a3, a4;
271 ai_real b1, b2, b3, b4;
272 ai_real c1, c2, c3, c4;
273 ai_real d1, d2, d3, d4;
277 #endif // __cplusplus 279 #endif // AI_MATRIX4X4_H_INC 3D vector structure, including operators when compiling in C++
Definition: matrix4x4.h:269
Assimp build configuration setup.
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()
Return the epsilon constant for floating point types.
Definition: scalar_constants.inl:6
GLM_FUNC_DECL qua< T, Q > rotation(vec< 3, T, Q > const &orig, vec< 3, T, Q > const &dest)
Compute the rotation between two vectors.
Definition: quaternion.inl:122
GLM_FUNC_DECL GLM_CONSTEXPR genType e()
Return e constant.
Definition: constants.inl:102
GLM_FUNC_DECL vec< 3, T, Q > axis(qua< T, Q > const &x)
Returns the q rotation axis.
Definition: quaternion_trigonometric.inl:17