\hypertarget{group__Eina__Matrix4__Group}{}\doxysection{4x4 Matrices in floating point}
\label{group__Eina__Matrix4__Group}\index{4x4 Matrices in floating point@{4x4 Matrices in floating point}}


Definition and operations for 4x4 matrices.  


\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{struct__Eina__Matrix4}{\+\_\+\+Eina\+\_\+\+Matrix4}}
\item 
struct \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}}
\begin{DoxyCompactList}\small\item\em A 4x4 floating point matrix. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Eina__Matrix4__Group_ga00bf57dd54cdcd989690d8f74b01c486}\label{group__Eina__Matrix4__Group_ga00bf57dd54cdcd989690d8f74b01c486}} 
typedef struct \mbox{\hyperlink{struct__Eina__Matrix4}{\+\_\+\+Eina\+\_\+\+Matrix4}} {\bfseries Eina\+\_\+\+Matrix4}
\begin{DoxyCompactList}\small\item\em A 4x4 floating point matrix. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} \mbox{\hyperlink{group__Eina__Matrix__Group_ga3aec91bee6618dff67cb662d5136abbd}{Eina\+\_\+\+Matrix\+\_\+\+Type}} \mbox{\hyperlink{group__Eina__Matrix4__Group_ga4272770d113643e31273c9b18142477d}{eina\+\_\+matrix4\+\_\+type\+\_\+get}} (const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$m)
\begin{DoxyCompactList}\small\item\em Returns the type of the given floating point matrix. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix4__Group_ga5c927d68ca6de92d11e425b3dace244f}{eina\+\_\+matrix4\+\_\+values\+\_\+set}} (\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$m, double xx, double xy, double xz, double xw, double yx, double yy, double yz, double yw, double zx, double zy, double zz, double zw, double wx, double wy, double wz, double ww)
\begin{DoxyCompactList}\small\item\em Sets the values of the coefficients of the given floating point matrix. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix4__Group_gaabdec308b8a7e3deeea97757fbcf3e18}{eina\+\_\+matrix4\+\_\+values\+\_\+get}} (const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$m, double $\ast$xx, double $\ast$xy, double $\ast$xz, double $\ast$xw, double $\ast$yx, double $\ast$yy, double $\ast$yz, double $\ast$yw, double $\ast$zx, double $\ast$zy, double $\ast$zz, double $\ast$zw, double $\ast$wx, double $\ast$wy, double $\ast$wz, double $\ast$ww)
\begin{DoxyCompactList}\small\item\em Gets the values of the coefficients of the given floating point matrix. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} double \mbox{\hyperlink{group__Eina__Matrix4__Group_ga8342ea750e7006fe4e4e12d9e381ddc0}{eina\+\_\+matrix4\+\_\+determinant}} (const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$m)
\begin{DoxyCompactList}\small\item\em Calculates the determinant of the given matrix. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Matrix4__Group_ga1d6affb9223064b14095e8a9521739bb}{eina\+\_\+matrix4\+\_\+normalized}} (\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$out, const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$in)
\begin{DoxyCompactList}\small\item\em Normalizes the given matrix. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Matrix4__Group_ga64411c509a4e256432c3d55dec3367e8}{eina\+\_\+matrix4\+\_\+inverse}} (\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$out, const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$in)
\begin{DoxyCompactList}\small\item\em Computes the inverse of the given matrix. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix4__Group_ga564111af5acb8dde821b83e013ec4c56}{eina\+\_\+matrix4\+\_\+transpose}} (\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$out, const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$in)
\begin{DoxyCompactList}\small\item\em Computes the transpose of the given matrix. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix4__Group_ga908944f31e660d8ae03726b0c0f2d913}{eina\+\_\+matrix4\+\_\+matrix3\+\_\+to}} (\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m3, const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$m4)
\begin{DoxyCompactList}\small\item\em Converts an \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} into an Eina\+\_\+\+Matrix3. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix4__Group_gacdb969859a1222e0f09153be2b4530c9}{eina\+\_\+matrix4\+\_\+identity}} (\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$out)
\begin{DoxyCompactList}\small\item\em Sets the given matrix to identity. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix4__Group_gaa4cfedcf70f75ced877d844b9c40c776}{eina\+\_\+matrix4\+\_\+multiply\+\_\+copy}} (\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$out, const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$mat\+\_\+a, const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$mat\+\_\+b)
\begin{DoxyCompactList}\small\item\em Multiplies two matrix. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix4__Group_gad2f9f1287cac0e1d78a7ce407c66f604}{eina\+\_\+matrix4\+\_\+array\+\_\+set}} (\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$m, const double $\ast$v)
\begin{DoxyCompactList}\small\item\em Sets matrix values using an array. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix4__Group_ga25043365cb582cdbcebd4355f923d4dd}{eina\+\_\+matrix4\+\_\+copy}} (\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$dst, const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$src)
\begin{DoxyCompactList}\small\item\em Copies matrix. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix4__Group_ga9080db053770fd64d7148e66350e4680}{eina\+\_\+matrix4\+\_\+multiply}} (\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$out, const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$mat\+\_\+a, const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$mat\+\_\+b)
\begin{DoxyCompactList}\small\item\em Multiplies two matrices with check. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix4__Group_ga473866c3622e072268e423e17ecaa99c}{eina\+\_\+matrix4\+\_\+ortho\+\_\+set}} (\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$m, double left, double right, double bottom, double top, double dnear, double dfar)
\begin{DoxyCompactList}\small\item\em Sets orthogonality matrix. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix4__Group_ga2c985aa2b330100b084f4fcb035c82d1}{eina\+\_\+matrix4\+\_\+compose}} (const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$mat\+\_\+a, const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$mat\+\_\+b, \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$out)
\begin{DoxyCompactList}\small\item\em Sets out as the matrix multiplication (composition) of two matrices. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix4__Group_ga5002e07b3392afc39a986ad2263ddcd8}{eina\+\_\+matrix4\+\_\+translate}} (\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$t, double tx, double ty, double tz)
\begin{DoxyCompactList}\small\item\em Sets the matrix values for a translation operation. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix4__Group_ga22ee032c16eb5f753fa537e7a8d180ff}{eina\+\_\+matrix4\+\_\+scale}} (\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$t, double sx, double sy, double sz)
\begin{DoxyCompactList}\small\item\em Sets the matrix values for a scaling operation. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix4__Group_gaf197e66ce1291e0e5aebb0288d43fb0d}{eina\+\_\+matrix4\+\_\+rotate}} (\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$t, double rad, \mbox{\hyperlink{group__Eina__Matrix__Group_ga572a36a679f1cf322191a1425fe61e64}{Eina\+\_\+\+Matrix\+\_\+\+Axis}} axis)
\begin{DoxyCompactList}\small\item\em Sets the matrix values for a rotation operation. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Definition and operations for 4x4 matrices. 



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__Eina__Matrix4__Group_ga4272770d113643e31273c9b18142477d}\label{group__Eina__Matrix4__Group_ga4272770d113643e31273c9b18142477d}} 
\index{4x4 Matrices in floating point@{4x4 Matrices in floating point}!eina\_matrix4\_type\_get@{eina\_matrix4\_type\_get}}
\index{eina\_matrix4\_type\_get@{eina\_matrix4\_type\_get}!4x4 Matrices in floating point@{4x4 Matrices in floating point}}
\doxysubsubsection{\texorpdfstring{eina\_matrix4\_type\_get()}{eina\_matrix4\_type\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} \mbox{\hyperlink{group__Eina__Matrix__Group_ga3aec91bee6618dff67cb662d5136abbd}{Eina\+\_\+\+Matrix\+\_\+\+Type}} eina\+\_\+matrix4\+\_\+type\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{m }\end{DoxyParamCaption})}



Returns the type of the given floating point matrix. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em m} & The floating point matrix. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The type of the matrix.
\end{DoxyReturn}
This function returns the type of the matrix {\ttfamily m}. No check is done on {\ttfamily m}.

\begin{DoxySince}{Since}
1.\+15 
\end{DoxySince}


References \mbox{\hyperlink{group__Eina__Tools__Group_ga6bee37244b675b83d6a4f044a7a3d1e8}{EINA\+\_\+\+DBL\+\_\+\+EQ}}, \mbox{\hyperlink{group__Eina__Matrix__Group_ggac9e258fd0ef943c6c6f86d7a732b73f5ad225c3a0a95a5ec11da3009541cc0498}{EINA\+\_\+\+MATRIX\+\_\+\+TYPE\+\_\+\+AFFINE}}, and \mbox{\hyperlink{group__Eina__Matrix__Group_ggac9e258fd0ef943c6c6f86d7a732b73f5a3593bd6f89b1171d847fb6a5e901f862}{EINA\+\_\+\+MATRIX\+\_\+\+TYPE\+\_\+\+IDENTITY}}.



Referenced by \mbox{\hyperlink{group__Eina__Matrix4__Group_ga9080db053770fd64d7148e66350e4680}{eina\+\_\+matrix4\+\_\+multiply()}}, and \mbox{\hyperlink{group__Eina__Quaternion__Group_gab0c84a72c45a623c5e8a1cecf6322377}{eina\+\_\+quaternion\+\_\+transform()}}.

\mbox{\Hypertarget{group__Eina__Matrix4__Group_ga5c927d68ca6de92d11e425b3dace244f}\label{group__Eina__Matrix4__Group_ga5c927d68ca6de92d11e425b3dace244f}} 
\index{4x4 Matrices in floating point@{4x4 Matrices in floating point}!eina\_matrix4\_values\_set@{eina\_matrix4\_values\_set}}
\index{eina\_matrix4\_values\_set@{eina\_matrix4\_values\_set}!4x4 Matrices in floating point@{4x4 Matrices in floating point}}
\doxysubsubsection{\texorpdfstring{eina\_matrix4\_values\_set()}{eina\_matrix4\_values\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix4\+\_\+values\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{m,  }\item[{double}]{xx,  }\item[{double}]{xy,  }\item[{double}]{xz,  }\item[{double}]{xw,  }\item[{double}]{yx,  }\item[{double}]{yy,  }\item[{double}]{yz,  }\item[{double}]{yw,  }\item[{double}]{zx,  }\item[{double}]{zy,  }\item[{double}]{zz,  }\item[{double}]{zw,  }\item[{double}]{wx,  }\item[{double}]{wy,  }\item[{double}]{wz,  }\item[{double}]{ww }\end{DoxyParamCaption})}



Sets the values of the coefficients of the given floating point matrix. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em m} & The floating point matrix. \\
\hline
\mbox{\texttt{ in}}  & {\em xx} & The first coefficient value. \\
\hline
\mbox{\texttt{ in}}  & {\em xy} & The second coefficient value. \\
\hline
\mbox{\texttt{ in}}  & {\em xz} & The third coefficient value. \\
\hline
\mbox{\texttt{ in}}  & {\em xw} & The fourth coefficient value. \\
\hline
\mbox{\texttt{ in}}  & {\em yx} & The fifth coefficient value. \\
\hline
\mbox{\texttt{ in}}  & {\em yy} & The sixth coefficient value. \\
\hline
\mbox{\texttt{ in}}  & {\em yz} & The seventh coefficient value. \\
\hline
\mbox{\texttt{ in}}  & {\em yw} & The eighth coefficient value. \\
\hline
\mbox{\texttt{ in}}  & {\em zx} & The ninth coefficient value. \\
\hline
\mbox{\texttt{ in}}  & {\em zy} & The tenth coefficient value. \\
\hline
\mbox{\texttt{ in}}  & {\em zz} & The eleventh coefficient value. \\
\hline
\mbox{\texttt{ in}}  & {\em zw} & The twelfth coefficient value. \\
\hline
\mbox{\texttt{ in}}  & {\em wx} & The thirteenth coefficient value. \\
\hline
\mbox{\texttt{ in}}  & {\em wy} & The fourteenth coefficient value. \\
\hline
\mbox{\texttt{ in}}  & {\em wz} & The fifteenth coefficient value. \\
\hline
\mbox{\texttt{ in}}  & {\em ww} & The sixteenth coefficient value.\\
\hline
\end{DoxyParams}
This function sets the values of the coefficients of the matrix {\ttfamily m}. No check is done on {\ttfamily m}.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Matrix4__Group_gaabdec308b8a7e3deeea97757fbcf3e18}{eina\+\_\+matrix4\+\_\+values\+\_\+get()}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+15 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Matrix4__Group_gaabdec308b8a7e3deeea97757fbcf3e18}\label{group__Eina__Matrix4__Group_gaabdec308b8a7e3deeea97757fbcf3e18}} 
\index{4x4 Matrices in floating point@{4x4 Matrices in floating point}!eina\_matrix4\_values\_get@{eina\_matrix4\_values\_get}}
\index{eina\_matrix4\_values\_get@{eina\_matrix4\_values\_get}!4x4 Matrices in floating point@{4x4 Matrices in floating point}}
\doxysubsubsection{\texorpdfstring{eina\_matrix4\_values\_get()}{eina\_matrix4\_values\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix4\+\_\+values\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{m,  }\item[{double $\ast$}]{xx,  }\item[{double $\ast$}]{xy,  }\item[{double $\ast$}]{xz,  }\item[{double $\ast$}]{xw,  }\item[{double $\ast$}]{yx,  }\item[{double $\ast$}]{yy,  }\item[{double $\ast$}]{yz,  }\item[{double $\ast$}]{yw,  }\item[{double $\ast$}]{zx,  }\item[{double $\ast$}]{zy,  }\item[{double $\ast$}]{zz,  }\item[{double $\ast$}]{zw,  }\item[{double $\ast$}]{wx,  }\item[{double $\ast$}]{wy,  }\item[{double $\ast$}]{wz,  }\item[{double $\ast$}]{ww }\end{DoxyParamCaption})}



Gets the values of the coefficients of the given floating point matrix. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em m} & The floating point matrix. \\
\hline
\mbox{\texttt{ out}}  & {\em xx} & The first coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em xy} & The second coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em xz} & The third coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em xw} & The fourth coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em yx} & The fifth coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em yy} & The sixth coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em yz} & The seventh coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em yw} & The eighth coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em zx} & The ninth coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em zy} & The tenth coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em zz} & The eleventh coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em zw} & The twelfth coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em wx} & The thirteenth coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em wy} & The fourteenth coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em wz} & The fifteenth coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em ww} & The sixteenth coefficient value.\\
\hline
\end{DoxyParams}
This function gets the values of the coefficients of the matrix {\ttfamily m}. No check is done on {\ttfamily m}.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Matrix4__Group_ga5c927d68ca6de92d11e425b3dace244f}{eina\+\_\+matrix4\+\_\+values\+\_\+set()}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+15 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Matrix4__Group_ga8342ea750e7006fe4e4e12d9e381ddc0}\label{group__Eina__Matrix4__Group_ga8342ea750e7006fe4e4e12d9e381ddc0}} 
\index{4x4 Matrices in floating point@{4x4 Matrices in floating point}!eina\_matrix4\_determinant@{eina\_matrix4\_determinant}}
\index{eina\_matrix4\_determinant@{eina\_matrix4\_determinant}!4x4 Matrices in floating point@{4x4 Matrices in floating point}}
\doxysubsubsection{\texorpdfstring{eina\_matrix4\_determinant()}{eina\_matrix4\_determinant()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} double eina\+\_\+matrix4\+\_\+determinant (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{m }\end{DoxyParamCaption})}



Calculates the determinant of the given matrix. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em m} & The matrix. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The determinant.
\end{DoxyReturn}
This function returns the determinant of the matrix {\ttfamily m}. No check is done on {\ttfamily m}.

\begin{DoxySince}{Since}
1.\+16 
\end{DoxySince}


Referenced by \mbox{\hyperlink{group__Eina__Matrix4__Group_ga1d6affb9223064b14095e8a9521739bb}{eina\+\_\+matrix4\+\_\+normalized()}}, and \mbox{\hyperlink{group__Eina__Quaternion__Group_gaf0d8405b84382faefe7771a8b590bc2c}{eina\+\_\+matrix4\+\_\+quaternion\+\_\+to()}}.

\mbox{\Hypertarget{group__Eina__Matrix4__Group_ga1d6affb9223064b14095e8a9521739bb}\label{group__Eina__Matrix4__Group_ga1d6affb9223064b14095e8a9521739bb}} 
\index{4x4 Matrices in floating point@{4x4 Matrices in floating point}!eina\_matrix4\_normalized@{eina\_matrix4\_normalized}}
\index{eina\_matrix4\_normalized@{eina\_matrix4\_normalized}!4x4 Matrices in floating point@{4x4 Matrices in floating point}}
\doxysubsubsection{\texorpdfstring{eina\_matrix4\_normalized()}{eina\_matrix4\_normalized()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+matrix4\+\_\+normalized (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{in }\end{DoxyParamCaption})}



Normalizes the given matrix. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The normalized matrix. \\
\hline
\mbox{\texttt{ in}}  & {\em in} & The matrix. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily EINA\+\_\+\+FALSE} if matrix could not be normalized, {\ttfamily EINA\+\_\+\+TRUE} otherwise.
\end{DoxyReturn}
This function returns the determinant of the matrix {\ttfamily in}. No check is done on {\ttfamily in}.

\begin{DoxySince}{Since}
1.\+16 
\end{DoxySince}


References \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}}, \mbox{\hyperlink{group__Eina__Matrix4__Group_ga8342ea750e7006fe4e4e12d9e381ddc0}{eina\+\_\+matrix4\+\_\+determinant()}}, and \mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}}.

\mbox{\Hypertarget{group__Eina__Matrix4__Group_ga64411c509a4e256432c3d55dec3367e8}\label{group__Eina__Matrix4__Group_ga64411c509a4e256432c3d55dec3367e8}} 
\index{4x4 Matrices in floating point@{4x4 Matrices in floating point}!eina\_matrix4\_inverse@{eina\_matrix4\_inverse}}
\index{eina\_matrix4\_inverse@{eina\_matrix4\_inverse}!4x4 Matrices in floating point@{4x4 Matrices in floating point}}
\doxysubsubsection{\texorpdfstring{eina\_matrix4\_inverse()}{eina\_matrix4\_inverse()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+matrix4\+\_\+inverse (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{in }\end{DoxyParamCaption})}



Computes the inverse of the given matrix. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The inverse matrix. \\
\hline
\mbox{\texttt{ in}}  & {\em in} & The matrix. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily EINA\+\_\+\+TRUE} on success, {\ttfamily EINA\+\_\+\+FALSE} otherwise.
\end{DoxyReturn}
This function inverts the matrix {\ttfamily in} and stores the result in {\ttfamily out}. No check is done on {\ttfamily in} or {\ttfamily out}. If {\ttfamily in} cannot be inverted, then {\ttfamily EINA\+\_\+\+FALSE} is returned.

\begin{DoxySince}{Since}
1.\+16 
\end{DoxySince}


References \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}}, and \mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}}.



Referenced by \mbox{\hyperlink{group__Eina__Quaternion__Group_gaf0d8405b84382faefe7771a8b590bc2c}{eina\+\_\+matrix4\+\_\+quaternion\+\_\+to()}}.

\mbox{\Hypertarget{group__Eina__Matrix4__Group_ga564111af5acb8dde821b83e013ec4c56}\label{group__Eina__Matrix4__Group_ga564111af5acb8dde821b83e013ec4c56}} 
\index{4x4 Matrices in floating point@{4x4 Matrices in floating point}!eina\_matrix4\_transpose@{eina\_matrix4\_transpose}}
\index{eina\_matrix4\_transpose@{eina\_matrix4\_transpose}!4x4 Matrices in floating point@{4x4 Matrices in floating point}}
\doxysubsubsection{\texorpdfstring{eina\_matrix4\_transpose()}{eina\_matrix4\_transpose()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix4\+\_\+transpose (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{in }\end{DoxyParamCaption})}



Computes the transpose of the given matrix. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The transposed matrix. \\
\hline
\mbox{\texttt{ in}}  & {\em in} & The source matrix.\\
\hline
\end{DoxyParams}
This function transposes the matrix {\ttfamily in} and stores the result in {\ttfamily out}. No check is done on {\ttfamily in} or {\ttfamily out}. The transpose of a matrix essentially flips a matrix over its diagonal.

\begin{DoxySince}{Since}
1.\+16 
\end{DoxySince}


Referenced by \mbox{\hyperlink{group__Eina__Quaternion__Group_gaf0d8405b84382faefe7771a8b590bc2c}{eina\+\_\+matrix4\+\_\+quaternion\+\_\+to()}}.

\mbox{\Hypertarget{group__Eina__Matrix4__Group_ga908944f31e660d8ae03726b0c0f2d913}\label{group__Eina__Matrix4__Group_ga908944f31e660d8ae03726b0c0f2d913}} 
\index{4x4 Matrices in floating point@{4x4 Matrices in floating point}!eina\_matrix4\_matrix3\_to@{eina\_matrix4\_matrix3\_to}}
\index{eina\_matrix4\_matrix3\_to@{eina\_matrix4\_matrix3\_to}!4x4 Matrices in floating point@{4x4 Matrices in floating point}}
\doxysubsubsection{\texorpdfstring{eina\_matrix4\_matrix3\_to()}{eina\_matrix4\_matrix3\_to()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix4\+\_\+matrix3\+\_\+to (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m3,  }\item[{const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{m4 }\end{DoxyParamCaption})}



Converts an \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} into an Eina\+\_\+\+Matrix3. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em m3} & The destination Eina\+\_\+\+Matrix3. \\
\hline
\mbox{\texttt{ in}}  & {\em m4} & The source \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}}.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+15 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Matrix4__Group_gacdb969859a1222e0f09153be2b4530c9}\label{group__Eina__Matrix4__Group_gacdb969859a1222e0f09153be2b4530c9}} 
\index{4x4 Matrices in floating point@{4x4 Matrices in floating point}!eina\_matrix4\_identity@{eina\_matrix4\_identity}}
\index{eina\_matrix4\_identity@{eina\_matrix4\_identity}!4x4 Matrices in floating point@{4x4 Matrices in floating point}}
\doxysubsubsection{\texorpdfstring{eina\_matrix4\_identity()}{eina\_matrix4\_identity()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix4\+\_\+identity (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{out }\end{DoxyParamCaption})}



Sets the given matrix to identity. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The matrix to set.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+16 
\end{DoxySince}


Referenced by \mbox{\hyperlink{group__Eina__Matrix4__Group_gaf197e66ce1291e0e5aebb0288d43fb0d}{eina\+\_\+matrix4\+\_\+rotate()}}, and \mbox{\hyperlink{group__Eina__Quaternion__Group_ga6fbc748841a73b772fb3ef2835c0e88a}{eina\+\_\+quaternion\+\_\+matrix4\+\_\+to()}}.

\mbox{\Hypertarget{group__Eina__Matrix4__Group_gaa4cfedcf70f75ced877d844b9c40c776}\label{group__Eina__Matrix4__Group_gaa4cfedcf70f75ced877d844b9c40c776}} 
\index{4x4 Matrices in floating point@{4x4 Matrices in floating point}!eina\_matrix4\_multiply\_copy@{eina\_matrix4\_multiply\_copy}}
\index{eina\_matrix4\_multiply\_copy@{eina\_matrix4\_multiply\_copy}!4x4 Matrices in floating point@{4x4 Matrices in floating point}}
\doxysubsubsection{\texorpdfstring{eina\_matrix4\_multiply\_copy()}{eina\_matrix4\_multiply\_copy()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix4\+\_\+multiply\+\_\+copy (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{mat\+\_\+a,  }\item[{const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{mat\+\_\+b }\end{DoxyParamCaption})}



Multiplies two matrix. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The resulting matrix. \\
\hline
\mbox{\texttt{ in}}  & {\em mat\+\_\+a} & The first member of the multiplication. \\
\hline
\mbox{\texttt{ in}}  & {\em mat\+\_\+b} & The second member of the multiplication.\\
\hline
\end{DoxyParams}
Safely multiplies {\ttfamily mat\+\_\+a} and {\ttfamily mat\+\_\+b} by checking if the {\ttfamily out} parameter points to either of them, and if so uses a temporary matrix for the intermediary calculations.

\begin{DoxySince}{Since}
1.\+17 
\end{DoxySince}


References \mbox{\hyperlink{group__Eina__Matrix4__Group_ga25043365cb582cdbcebd4355f923d4dd}{eina\+\_\+matrix4\+\_\+copy()}}, and \mbox{\hyperlink{group__Eina__Matrix4__Group_ga9080db053770fd64d7148e66350e4680}{eina\+\_\+matrix4\+\_\+multiply()}}.

\mbox{\Hypertarget{group__Eina__Matrix4__Group_gad2f9f1287cac0e1d78a7ce407c66f604}\label{group__Eina__Matrix4__Group_gad2f9f1287cac0e1d78a7ce407c66f604}} 
\index{4x4 Matrices in floating point@{4x4 Matrices in floating point}!eina\_matrix4\_array\_set@{eina\_matrix4\_array\_set}}
\index{eina\_matrix4\_array\_set@{eina\_matrix4\_array\_set}!4x4 Matrices in floating point@{4x4 Matrices in floating point}}
\doxysubsubsection{\texorpdfstring{eina\_matrix4\_array\_set()}{eina\_matrix4\_array\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix4\+\_\+array\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{m,  }\item[{const double $\ast$}]{v }\end{DoxyParamCaption})}



Sets matrix values using an array. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em m} & The result matrix. \\
\hline
\mbox{\texttt{ in}}  & {\em v} & The the array\mbox{[}16\mbox{]} of values.\\
\hline
\end{DoxyParams}
Uses the first 16 elements in the given C array {\ttfamily v} to set the values in the matrix {\ttfamily m}. The values will be set in the order of the elements in the \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} structure.

\begin{DoxySince}{Since}
1.\+17 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Matrix4__Group_ga25043365cb582cdbcebd4355f923d4dd}\label{group__Eina__Matrix4__Group_ga25043365cb582cdbcebd4355f923d4dd}} 
\index{4x4 Matrices in floating point@{4x4 Matrices in floating point}!eina\_matrix4\_copy@{eina\_matrix4\_copy}}
\index{eina\_matrix4\_copy@{eina\_matrix4\_copy}!4x4 Matrices in floating point@{4x4 Matrices in floating point}}
\doxysubsubsection{\texorpdfstring{eina\_matrix4\_copy()}{eina\_matrix4\_copy()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix4\+\_\+copy (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{dst,  }\item[{const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{src }\end{DoxyParamCaption})}



Copies matrix. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em dst} & The matrix copy. \\
\hline
\mbox{\texttt{ in}}  & {\em src} & The matrix to copy.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+17 
\end{DoxySince}


Referenced by \mbox{\hyperlink{group__Eina__Matrix4__Group_ga9080db053770fd64d7148e66350e4680}{eina\+\_\+matrix4\+\_\+multiply()}}, and \mbox{\hyperlink{group__Eina__Matrix4__Group_gaa4cfedcf70f75ced877d844b9c40c776}{eina\+\_\+matrix4\+\_\+multiply\+\_\+copy()}}.

\mbox{\Hypertarget{group__Eina__Matrix4__Group_ga9080db053770fd64d7148e66350e4680}\label{group__Eina__Matrix4__Group_ga9080db053770fd64d7148e66350e4680}} 
\index{4x4 Matrices in floating point@{4x4 Matrices in floating point}!eina\_matrix4\_multiply@{eina\_matrix4\_multiply}}
\index{eina\_matrix4\_multiply@{eina\_matrix4\_multiply}!4x4 Matrices in floating point@{4x4 Matrices in floating point}}
\doxysubsubsection{\texorpdfstring{eina\_matrix4\_multiply()}{eina\_matrix4\_multiply()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix4\+\_\+multiply (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{mat\+\_\+a,  }\item[{const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{mat\+\_\+b }\end{DoxyParamCaption})}



Multiplies two matrices with check. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The resulting matrix. \\
\hline
\mbox{\texttt{ in}}  & {\em mat\+\_\+a} & The first member of the multiplication. \\
\hline
\mbox{\texttt{ in}}  & {\em mat\+\_\+b} & The second member of the multiplication.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+17 
\end{DoxySince}


References \mbox{\hyperlink{group__Eina__Matrix4__Group_ga2c985aa2b330100b084f4fcb035c82d1}{eina\+\_\+matrix4\+\_\+compose()}}, \mbox{\hyperlink{group__Eina__Matrix4__Group_ga25043365cb582cdbcebd4355f923d4dd}{eina\+\_\+matrix4\+\_\+copy()}}, \mbox{\hyperlink{group__Eina__Matrix4__Group_ga4272770d113643e31273c9b18142477d}{eina\+\_\+matrix4\+\_\+type\+\_\+get()}}, and \mbox{\hyperlink{group__Eina__Matrix__Group_ggac9e258fd0ef943c6c6f86d7a732b73f5a3593bd6f89b1171d847fb6a5e901f862}{EINA\+\_\+\+MATRIX\+\_\+\+TYPE\+\_\+\+IDENTITY}}.



Referenced by \mbox{\hyperlink{group__Eina__Matrix4__Group_gaa4cfedcf70f75ced877d844b9c40c776}{eina\+\_\+matrix4\+\_\+multiply\+\_\+copy()}}, and \mbox{\hyperlink{group__Eina__Quaternion__Group_ga6fbc748841a73b772fb3ef2835c0e88a}{eina\+\_\+quaternion\+\_\+matrix4\+\_\+to()}}.

\mbox{\Hypertarget{group__Eina__Matrix4__Group_ga473866c3622e072268e423e17ecaa99c}\label{group__Eina__Matrix4__Group_ga473866c3622e072268e423e17ecaa99c}} 
\index{4x4 Matrices in floating point@{4x4 Matrices in floating point}!eina\_matrix4\_ortho\_set@{eina\_matrix4\_ortho\_set}}
\index{eina\_matrix4\_ortho\_set@{eina\_matrix4\_ortho\_set}!4x4 Matrices in floating point@{4x4 Matrices in floating point}}
\doxysubsubsection{\texorpdfstring{eina\_matrix4\_ortho\_set()}{eina\_matrix4\_ortho\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix4\+\_\+ortho\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{m,  }\item[{double}]{left,  }\item[{double}]{right,  }\item[{double}]{bottom,  }\item[{double}]{top,  }\item[{double}]{dnear,  }\item[{double}]{dfar }\end{DoxyParamCaption})}



Sets orthogonality matrix. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em m} & The resulting matrix. \\
\hline
\mbox{\texttt{ in}}  & {\em right} & The right value. \\
\hline
\mbox{\texttt{ in}}  & {\em left} & The left value. \\
\hline
\mbox{\texttt{ in}}  & {\em bottom} & The bottom value. \\
\hline
\mbox{\texttt{ in}}  & {\em top} & The top value. \\
\hline
\mbox{\texttt{ in}}  & {\em dnear} & The dnear value. \\
\hline
\mbox{\texttt{ in}}  & {\em dfar} & The dfar value.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+17 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Matrix4__Group_ga2c985aa2b330100b084f4fcb035c82d1}\label{group__Eina__Matrix4__Group_ga2c985aa2b330100b084f4fcb035c82d1}} 
\index{4x4 Matrices in floating point@{4x4 Matrices in floating point}!eina\_matrix4\_compose@{eina\_matrix4\_compose}}
\index{eina\_matrix4\_compose@{eina\_matrix4\_compose}!4x4 Matrices in floating point@{4x4 Matrices in floating point}}
\doxysubsubsection{\texorpdfstring{eina\_matrix4\_compose()}{eina\_matrix4\_compose()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix4\+\_\+compose (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{mat\+\_\+a,  }\item[{const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{mat\+\_\+b,  }\item[{\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{out }\end{DoxyParamCaption})}



Sets out as the matrix multiplication (composition) of two matrices. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em mat\+\_\+a} & The first matrix. Must be non-\/\+NULL. \\
\hline
\mbox{\texttt{ in}}  & {\em mat\+\_\+b} & The second matrix. Must be non-\/\+NULL. \\
\hline
\mbox{\texttt{ out}}  & {\em out} & The results matrix.\\
\hline
\end{DoxyParams}
In matrix multiplication, AB, the resultant matrix is created from the rows of A multiplied against the columns of B and summed. This is not commutative; i.\+e. AB != BA, so the ordering of arguments {\ttfamily m1} and {\ttfamily m2} matters.

\begin{DoxySince}{Since}
1.\+24 
\end{DoxySince}


Referenced by \mbox{\hyperlink{group__Eina__Matrix4__Group_ga9080db053770fd64d7148e66350e4680}{eina\+\_\+matrix4\+\_\+multiply()}}, \mbox{\hyperlink{group__Eina__Matrix4__Group_gaf197e66ce1291e0e5aebb0288d43fb0d}{eina\+\_\+matrix4\+\_\+rotate()}}, \mbox{\hyperlink{group__Eina__Matrix4__Group_ga22ee032c16eb5f753fa537e7a8d180ff}{eina\+\_\+matrix4\+\_\+scale()}}, and \mbox{\hyperlink{group__Eina__Matrix4__Group_ga5002e07b3392afc39a986ad2263ddcd8}{eina\+\_\+matrix4\+\_\+translate()}}.

\mbox{\Hypertarget{group__Eina__Matrix4__Group_ga5002e07b3392afc39a986ad2263ddcd8}\label{group__Eina__Matrix4__Group_ga5002e07b3392afc39a986ad2263ddcd8}} 
\index{4x4 Matrices in floating point@{4x4 Matrices in floating point}!eina\_matrix4\_translate@{eina\_matrix4\_translate}}
\index{eina\_matrix4\_translate@{eina\_matrix4\_translate}!4x4 Matrices in floating point@{4x4 Matrices in floating point}}
\doxysubsubsection{\texorpdfstring{eina\_matrix4\_translate()}{eina\_matrix4\_translate()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix4\+\_\+translate (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{t,  }\item[{double}]{tx,  }\item[{double}]{ty,  }\item[{double}]{tz }\end{DoxyParamCaption})}



Sets the matrix values for a translation operation. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em t} & Where to store the resulting matrix. \\
\hline
\mbox{\texttt{ in}}  & {\em tx} & The X coordinate translation. \\
\hline
\mbox{\texttt{ in}}  & {\em ty} & The Y coordinate translation. \\
\hline
\mbox{\texttt{ in}}  & {\em tz} & The Z coordinate translation.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+24 
\end{DoxySince}


References \mbox{\hyperlink{group__Eina__Matrix4__Group_ga2c985aa2b330100b084f4fcb035c82d1}{eina\+\_\+matrix4\+\_\+compose()}}.

\mbox{\Hypertarget{group__Eina__Matrix4__Group_ga22ee032c16eb5f753fa537e7a8d180ff}\label{group__Eina__Matrix4__Group_ga22ee032c16eb5f753fa537e7a8d180ff}} 
\index{4x4 Matrices in floating point@{4x4 Matrices in floating point}!eina\_matrix4\_scale@{eina\_matrix4\_scale}}
\index{eina\_matrix4\_scale@{eina\_matrix4\_scale}!4x4 Matrices in floating point@{4x4 Matrices in floating point}}
\doxysubsubsection{\texorpdfstring{eina\_matrix4\_scale()}{eina\_matrix4\_scale()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix4\+\_\+scale (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{t,  }\item[{double}]{sx,  }\item[{double}]{sy,  }\item[{double}]{sz }\end{DoxyParamCaption})}



Sets the matrix values for a scaling operation. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em t} & Where to store the resulting matrix. \\
\hline
\mbox{\texttt{ in}}  & {\em sx} & The X coordinate scaling factor. \\
\hline
\mbox{\texttt{ in}}  & {\em sy} & The Y coordinate scaling factor. \\
\hline
\mbox{\texttt{ in}}  & {\em sz} & The Z coordinate scaling factor.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+24 
\end{DoxySince}


References \mbox{\hyperlink{group__Eina__Matrix4__Group_ga2c985aa2b330100b084f4fcb035c82d1}{eina\+\_\+matrix4\+\_\+compose()}}.

\mbox{\Hypertarget{group__Eina__Matrix4__Group_gaf197e66ce1291e0e5aebb0288d43fb0d}\label{group__Eina__Matrix4__Group_gaf197e66ce1291e0e5aebb0288d43fb0d}} 
\index{4x4 Matrices in floating point@{4x4 Matrices in floating point}!eina\_matrix4\_rotate@{eina\_matrix4\_rotate}}
\index{eina\_matrix4\_rotate@{eina\_matrix4\_rotate}!4x4 Matrices in floating point@{4x4 Matrices in floating point}}
\doxysubsubsection{\texorpdfstring{eina\_matrix4\_rotate()}{eina\_matrix4\_rotate()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix4\+\_\+rotate (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{t,  }\item[{double}]{rad,  }\item[{\mbox{\hyperlink{group__Eina__Matrix__Group_ga572a36a679f1cf322191a1425fe61e64}{Eina\+\_\+\+Matrix\+\_\+\+Axis}}}]{axis }\end{DoxyParamCaption})}



Sets the matrix values for a rotation operation. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em t} & Where to store the resulting matrix. \\
\hline
\mbox{\texttt{ in}}  & {\em rad} & The number of radians to rotate. \\
\hline
\mbox{\texttt{ in}}  & {\em axis} & The Axis of rotation.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+24 
\end{DoxySince}


References \mbox{\hyperlink{group__Eina__Matrix4__Group_ga2c985aa2b330100b084f4fcb035c82d1}{eina\+\_\+matrix4\+\_\+compose()}}, \mbox{\hyperlink{group__Eina__Matrix4__Group_gacdb969859a1222e0f09153be2b4530c9}{eina\+\_\+matrix4\+\_\+identity()}}, \mbox{\hyperlink{group__Eina__Matrix__Group_gga33f39733eb13f69a2d4255f815ffbc24a8528d055a20d440dc1f8e3461303d603}{EINA\+\_\+\+MATRIX\+\_\+\+AXIS\+\_\+X}}, \mbox{\hyperlink{group__Eina__Matrix__Group_gga33f39733eb13f69a2d4255f815ffbc24a55933c9d9280d0071007ecb00259116c}{EINA\+\_\+\+MATRIX\+\_\+\+AXIS\+\_\+Y}}, and \mbox{\hyperlink{group__Eina__Matrix__Group_gga33f39733eb13f69a2d4255f815ffbc24ad8390de25b3586e94a510fc6dadca945}{EINA\+\_\+\+MATRIX\+\_\+\+AXIS\+\_\+Z}}.

