\hypertarget{group__Eina__Matrix3__Group}{}\doxysection{3x3 floating point matrices}
\label{group__Eina__Matrix3__Group}\index{3x3 floating point matrices@{3x3 floating point matrices}}


Definition and operations for 3x3 matrices.  


\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{struct__Eina__Matrix3}{\+\_\+\+Eina\+\_\+\+Matrix3}}
\begin{DoxyCompactList}\small\item\em A 3x3 floating point matrix. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga5b0911176c8d5df13db64a3f6b6539b6}\label{group__Eina__Matrix3__Group_ga5b0911176c8d5df13db64a3f6b6539b6}} 
\#define {\bfseries EINA\+\_\+\+MATRIX3\+\_\+\+FORMAT}~\char`\"{}g \%g \%g $\vert$ \%g \%g \%g $\vert$ \%g \%g \%g\char`\"{}
\begin{DoxyCompactList}\small\item\em Helper macro for printf formatting. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eina__Matrix3__Group_gaa8275fdf48cc11b6e647c7f45d077faa}{EINA\+\_\+\+MATRIX3\+\_\+\+ARGS}}(m)
\begin{DoxyCompactList}\small\item\em Helper macro for printf formatting arg. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}\label{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}} 
typedef struct \mbox{\hyperlink{struct__Eina__Matrix3}{\+\_\+\+Eina\+\_\+\+Matrix3}} {\bfseries Eina\+\_\+\+Matrix3}
\begin{DoxyCompactList}\small\item\em A 3x3 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__Matrix3__Group_ga941fd9c576e97dd5d11aacebbece47d5}{eina\+\_\+matrix3\+\_\+type\+\_\+get}} (const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\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__Matrix3__Group_ga4943589c0aa8cf41e11bafe4bc53a6f5}{eina\+\_\+matrix3\+\_\+values\+\_\+set}} (\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m, double xx, double xy, double xz, double yx, double yy, double yz, double zx, double zy, double zz)
\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__Matrix3__Group_ga725aeb4e7f9c3648df526e2ab7b08b30}{eina\+\_\+matrix3\+\_\+values\+\_\+get}} (const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m, double $\ast$xx, double $\ast$xy, double $\ast$xz, double $\ast$yx, double $\ast$yy, double $\ast$yz, double $\ast$zx, double $\ast$zy, double $\ast$zz)
\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}} void \mbox{\hyperlink{group__Eina__Matrix3__Group_ga163ba9c263cd7a0f22c6b33078f05001}{eina\+\_\+matrix3\+\_\+fixed\+\_\+values\+\_\+get}} (const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m, \mbox{\hyperlink{group__Eina__Fp__Group_gad39780115c81512495fd39a60b9f317c}{Eina\+\_\+\+F16p16}} $\ast$xx, \mbox{\hyperlink{group__Eina__Fp__Group_gad39780115c81512495fd39a60b9f317c}{Eina\+\_\+\+F16p16}} $\ast$xy, \mbox{\hyperlink{group__Eina__Fp__Group_gad39780115c81512495fd39a60b9f317c}{Eina\+\_\+\+F16p16}} $\ast$xz, \mbox{\hyperlink{group__Eina__Fp__Group_gad39780115c81512495fd39a60b9f317c}{Eina\+\_\+\+F16p16}} $\ast$yx, \mbox{\hyperlink{group__Eina__Fp__Group_gad39780115c81512495fd39a60b9f317c}{Eina\+\_\+\+F16p16}} $\ast$yy, \mbox{\hyperlink{group__Eina__Fp__Group_gad39780115c81512495fd39a60b9f317c}{Eina\+\_\+\+F16p16}} $\ast$yz, \mbox{\hyperlink{group__Eina__Fp__Group_gad39780115c81512495fd39a60b9f317c}{Eina\+\_\+\+F16p16}} $\ast$zx, \mbox{\hyperlink{group__Eina__Fp__Group_gad39780115c81512495fd39a60b9f317c}{Eina\+\_\+\+F16p16}} $\ast$zy, \mbox{\hyperlink{group__Eina__Fp__Group_gad39780115c81512495fd39a60b9f317c}{Eina\+\_\+\+F16p16}} $\ast$zz)
\begin{DoxyCompactList}\small\item\em Gets the values of the coefficients of the given fixed point matrix. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix3__Group_gaecb63eb8f94f64e3e1119b05a84d670e}{eina\+\_\+matrix3\+\_\+matrix3\+\_\+f16p16\+\_\+to}} (const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m, \mbox{\hyperlink{structEina__Matrix3__F16p16}{Eina\+\_\+\+Matrix3\+\_\+\+F16p16}} $\ast$fm)
\begin{DoxyCompactList}\small\item\em Transforms the given floating point matrix to the given fixed point 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__Matrix3__Group_ga900246877eae4cba9a5fb2695871e641}{eina\+\_\+matrix3\+\_\+equal}} (const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m1, const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m2)
\begin{DoxyCompactList}\small\item\em Checks whether the two matrices are equivalent. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix3__Group_gad6f91abcdd12606ab730612aee290e44}{eina\+\_\+matrix3\+\_\+compose}} (const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m1, const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m2, \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$dst)
\begin{DoxyCompactList}\small\item\em Sets dst 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__Matrix3__Group_ga5e00a1aa7611ee13fda2f7fb4b7e79da}{eina\+\_\+matrix3\+\_\+translate}} (\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m, double tx, double ty)
\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__Matrix3__Group_ga2236a4be9d115bca0bd551811970d641}{eina\+\_\+matrix3\+\_\+scale}} (\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m, double sx, double sy)
\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__Matrix3__Group_ga99226422c1a902fc9fbff84affee40db}{eina\+\_\+matrix3\+\_\+rotate}} (\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m, double rad)
\begin{DoxyCompactList}\small\item\em Sets the matrix values for a rotation operation. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix3__Group_gaf38524a70caae1b0c5d13b7725afa260}{eina\+\_\+matrix3\+\_\+identity}} (\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m)
\begin{DoxyCompactList}\small\item\em Sets the given floating point matrix to the identity matrix. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} double \mbox{\hyperlink{group__Eina__Matrix3__Group_ga20986fb5efedca870f5f8b67aa8dc44d}{eina\+\_\+matrix3\+\_\+determinant}} (const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\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}} void \mbox{\hyperlink{group__Eina__Matrix3__Group_ga99804386c6a5d4cbf53e5744c52aea10}{eina\+\_\+matrix3\+\_\+divide}} (\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m, double scalar)
\begin{DoxyCompactList}\small\item\em Divides the given matrix by a scalar number. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix3__Group_ga89c76a05ef4a317d6e01ac96132177f4}{eina\+\_\+matrix3\+\_\+inverse}} (const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m, \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m2)
\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__Matrix3__Group_ga58de2e16994491b5a7353613ea18c9df}{eina\+\_\+matrix3\+\_\+transpose}} (const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m, \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$a)
\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__Matrix3__Group_gafc8c25a141d6640285e1f7ce2087483e}{eina\+\_\+matrix3\+\_\+cofactor}} (const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m, \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$a)
\begin{DoxyCompactList}\small\item\em Computes the cofactor of the given matrix. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix3__Group_ga6e7112eb6e63a598ea0222a85250ea65}{eina\+\_\+matrix3\+\_\+adjoint}} (const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m, \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$a)
\begin{DoxyCompactList}\small\item\em Computes the adjoint of the given matrix. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix3__Group_ga447b4ceb098a9598d5de30cf17be3c81}{eina\+\_\+matrix3\+\_\+point\+\_\+transform}} (const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m, double x, double y, double $\ast$xr, double $\ast$yr)
\begin{DoxyCompactList}\small\item\em Computes the transform of a 2D point using the given matrix. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix3__Group_ga45d1b6318b17de281a2668209e85e848}{eina\+\_\+matrix3\+\_\+rectangle\+\_\+transform}} (const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m, const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$r, const \mbox{\hyperlink{group__Eina__Quad__Group_gadbfe5a151d5485f8f0f71baeddc82a6d}{Eina\+\_\+\+Quad}} $\ast$q)
\begin{DoxyCompactList}\small\item\em Computes the transformation of a rectangle using 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__Matrix3__Group_ga813af53b0f049b082dd80bbafdf86292}{eina\+\_\+matrix3\+\_\+quad\+\_\+quad\+\_\+map}} (\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m, const \mbox{\hyperlink{group__Eina__Quad__Group_gadbfe5a151d5485f8f0f71baeddc82a6d}{Eina\+\_\+\+Quad}} $\ast$src, const \mbox{\hyperlink{group__Eina__Quad__Group_gadbfe5a151d5485f8f0f71baeddc82a6d}{Eina\+\_\+\+Quad}} $\ast$dst)
\begin{DoxyCompactList}\small\item\em Creates a projective matrix that maps a quadrangle to a quadrangle. \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__Matrix3__Group_ga7d4b45ef30215c96bbb893e49bccce54}{eina\+\_\+matrix3\+\_\+square\+\_\+quad\+\_\+map}} (\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m, const \mbox{\hyperlink{group__Eina__Quad__Group_gadbfe5a151d5485f8f0f71baeddc82a6d}{Eina\+\_\+\+Quad}} $\ast$q)
\begin{DoxyCompactList}\small\item\em Creates a matrix for unit-\/square to quad mapping. \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__Matrix3__Group_gaf3264d9057d9043d45f7a67b5f5db512}{eina\+\_\+matrix3\+\_\+quad\+\_\+square\+\_\+map}} (\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m, const \mbox{\hyperlink{group__Eina__Quad__Group_gadbfe5a151d5485f8f0f71baeddc82a6d}{Eina\+\_\+\+Quad}} $\ast$q)
\begin{DoxyCompactList}\small\item\em Creates a matrix for mapping squares to match quad. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix3__Group_gafd899d4b787eef130d86892396e901b6}{eina\+\_\+matrix3\+\_\+array\+\_\+set}} (\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\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__Matrix3__Group_gafd13dec1cd7526f8364a438ff3275ca8}{eina\+\_\+matrix3\+\_\+copy}} (\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$dst, const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$src)
\begin{DoxyCompactList}\small\item\em Copies a matrix. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix3__Group_gab7b7b96c55ef7498f273e4f25302f3e9}{eina\+\_\+matrix3\+\_\+multiply}} (\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$out, const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$mat\+\_\+a, const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$mat\+\_\+b)
\begin{DoxyCompactList}\small\item\em Multiplies two matrices. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix3__Group_gaf006364f743706283c0840a0fad4e5de}{eina\+\_\+matrix3\+\_\+multiply\+\_\+copy}} (\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$out, const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$mat\+\_\+a, const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$mat\+\_\+b)
\begin{DoxyCompactList}\small\item\em Multiplies two matrices without overwriting them. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix3__Group_gadb921aef98c2f0bef8acf1e0137d8b54}{eina\+\_\+matrix3\+\_\+scale\+\_\+transform\+\_\+set}} (\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$out, double s\+\_\+x, double s\+\_\+y)
\begin{DoxyCompactList}\small\item\em Sets the scale parameters (XX, YY) of a matrix. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix3__Group_ga9255d2f51c6e42e92ed8dc00828041aa}{eina\+\_\+matrix3\+\_\+position\+\_\+transform\+\_\+set}} (\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$out, const double p\+\_\+x, const double p\+\_\+y)
\begin{DoxyCompactList}\small\item\em Sets the positional parameters (XZ, YZ) of a matrix. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix3__Group_ga668eb2097e6428bbf5305b991a3153a1}{eina\+\_\+normal3\+\_\+matrix\+\_\+get}} (\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$out, const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$m)
\begin{DoxyCompactList}\small\item\em Sets normal of the given matrix. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Matrix3__Group_ga4d6e93da9c0d2b94aa9cbcdfe4323c71}{eina\+\_\+matrix3\+\_\+matrix4\+\_\+to}} (\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$m4, const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m3)
\begin{DoxyCompactList}\small\item\em Converts an Eina\+\_\+\+Matrix3 into an \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}}. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Definition and operations for 3x3 matrices. 



\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{group__Eina__Matrix3__Group_gaa8275fdf48cc11b6e647c7f45d077faa}\label{group__Eina__Matrix3__Group_gaa8275fdf48cc11b6e647c7f45d077faa}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!EINA\_MATRIX3\_ARGS@{EINA\_MATRIX3\_ARGS}}
\index{EINA\_MATRIX3\_ARGS@{EINA\_MATRIX3\_ARGS}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{EINA\_MATRIX3\_ARGS}{EINA\_MATRIX3\_ARGS}}
{\footnotesize\ttfamily \#define EINA\+\_\+\+MATRIX3\+\_\+\+ARGS(\begin{DoxyParamCaption}\item[{}]{m }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\ \ \ \ (m)-\/>xx,\ (m)-\/>xy,\ (m)-\/>xz,\ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ (m)-\/>yx,\ (m)-\/>yy,\ (m)-\/>yz,\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ (m)-\/>zx,\ (m)-\/>zy,\ (m)-\/>zz}

\end{DoxyCode}


Helper macro for printf formatting arg. 



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga941fd9c576e97dd5d11aacebbece47d5}\label{group__Eina__Matrix3__Group_ga941fd9c576e97dd5d11aacebbece47d5}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_type\_get@{eina\_matrix3\_type\_get}}
\index{eina\_matrix3\_type\_get@{eina\_matrix3\_type\_get}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_type\_get()}{eina\_matrix3\_type\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} \mbox{\hyperlink{group__Eina__Matrix__Group_ga3aec91bee6618dff67cb662d5136abbd}{Eina\+\_\+\+Matrix\+\_\+\+Type}} eina\+\_\+matrix3\+\_\+type\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\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.\+14 
\end{DoxySince}


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



Referenced by \mbox{\hyperlink{group__Eina__Matrix3__Group_gab7b7b96c55ef7498f273e4f25302f3e9}{eina\+\_\+matrix3\+\_\+multiply()}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga4943589c0aa8cf41e11bafe4bc53a6f5}\label{group__Eina__Matrix3__Group_ga4943589c0aa8cf41e11bafe4bc53a6f5}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_values\_set@{eina\_matrix3\_values\_set}}
\index{eina\_matrix3\_values\_set@{eina\_matrix3\_values\_set}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_values\_set()}{eina\_matrix3\_values\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix3\+\_\+values\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m,  }\item[{double}]{xx,  }\item[{double}]{xy,  }\item[{double}]{xz,  }\item[{double}]{yx,  }\item[{double}]{yy,  }\item[{double}]{yz,  }\item[{double}]{zx,  }\item[{double}]{zy,  }\item[{double}]{zz }\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 yx} & The fourth coefficient value. \\
\hline
\mbox{\texttt{ in}}  & {\em yy} & The fifth coefficient value. \\
\hline
\mbox{\texttt{ in}}  & {\em yz} & The sixth coefficient value. \\
\hline
\mbox{\texttt{ in}}  & {\em zx} & The seventh coefficient value. \\
\hline
\mbox{\texttt{ in}}  & {\em zy} & The eighth coefficient value. \\
\hline
\mbox{\texttt{ in}}  & {\em zz} & The ninth 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__Matrix3__Group_ga725aeb4e7f9c3648df526e2ab7b08b30}{eina\+\_\+matrix3\+\_\+values\+\_\+get()}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+14 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga725aeb4e7f9c3648df526e2ab7b08b30}\label{group__Eina__Matrix3__Group_ga725aeb4e7f9c3648df526e2ab7b08b30}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_values\_get@{eina\_matrix3\_values\_get}}
\index{eina\_matrix3\_values\_get@{eina\_matrix3\_values\_get}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_values\_get()}{eina\_matrix3\_values\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix3\+\_\+values\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m,  }\item[{double $\ast$}]{xx,  }\item[{double $\ast$}]{xy,  }\item[{double $\ast$}]{xz,  }\item[{double $\ast$}]{yx,  }\item[{double $\ast$}]{yy,  }\item[{double $\ast$}]{yz,  }\item[{double $\ast$}]{zx,  }\item[{double $\ast$}]{zy,  }\item[{double $\ast$}]{zz }\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 yx} & The fourth coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em yy} & The fifth coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em yz} & The sixth coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em zx} & The seventh coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em zy} & The eighth coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em zz} & The ninth 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__Matrix3__Group_ga4943589c0aa8cf41e11bafe4bc53a6f5}{eina\+\_\+matrix3\+\_\+values\+\_\+set()}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+14 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga163ba9c263cd7a0f22c6b33078f05001}\label{group__Eina__Matrix3__Group_ga163ba9c263cd7a0f22c6b33078f05001}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_fixed\_values\_get@{eina\_matrix3\_fixed\_values\_get}}
\index{eina\_matrix3\_fixed\_values\_get@{eina\_matrix3\_fixed\_values\_get}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_fixed\_values\_get()}{eina\_matrix3\_fixed\_values\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix3\+\_\+fixed\+\_\+values\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m,  }\item[{\mbox{\hyperlink{group__Eina__Fp__Group_gad39780115c81512495fd39a60b9f317c}{Eina\+\_\+\+F16p16}} $\ast$}]{xx,  }\item[{\mbox{\hyperlink{group__Eina__Fp__Group_gad39780115c81512495fd39a60b9f317c}{Eina\+\_\+\+F16p16}} $\ast$}]{xy,  }\item[{\mbox{\hyperlink{group__Eina__Fp__Group_gad39780115c81512495fd39a60b9f317c}{Eina\+\_\+\+F16p16}} $\ast$}]{xz,  }\item[{\mbox{\hyperlink{group__Eina__Fp__Group_gad39780115c81512495fd39a60b9f317c}{Eina\+\_\+\+F16p16}} $\ast$}]{yx,  }\item[{\mbox{\hyperlink{group__Eina__Fp__Group_gad39780115c81512495fd39a60b9f317c}{Eina\+\_\+\+F16p16}} $\ast$}]{yy,  }\item[{\mbox{\hyperlink{group__Eina__Fp__Group_gad39780115c81512495fd39a60b9f317c}{Eina\+\_\+\+F16p16}} $\ast$}]{yz,  }\item[{\mbox{\hyperlink{group__Eina__Fp__Group_gad39780115c81512495fd39a60b9f317c}{Eina\+\_\+\+F16p16}} $\ast$}]{zx,  }\item[{\mbox{\hyperlink{group__Eina__Fp__Group_gad39780115c81512495fd39a60b9f317c}{Eina\+\_\+\+F16p16}} $\ast$}]{zy,  }\item[{\mbox{\hyperlink{group__Eina__Fp__Group_gad39780115c81512495fd39a60b9f317c}{Eina\+\_\+\+F16p16}} $\ast$}]{zz }\end{DoxyParamCaption})}



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


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em m} & The fixed 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 yx} & The fourth coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em yy} & The fifth coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em yz} & The sixth coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em zx} & The seventh coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em zy} & The eighth coefficient value. \\
\hline
\mbox{\texttt{ out}}  & {\em zz} & The nine-\/th 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__Matrix3__Group_ga4943589c0aa8cf41e11bafe4bc53a6f5}{eina\+\_\+matrix3\+\_\+values\+\_\+set()}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+14 
\end{DoxySince}


References \mbox{\hyperlink{group__Eina__Fp__Group_gafd5179d116dbc69544e099ef0efcb689}{eina\+\_\+f16p16\+\_\+double\+\_\+from()}}.



Referenced by \mbox{\hyperlink{group__Eina__Matrix3__Group_gaecb63eb8f94f64e3e1119b05a84d670e}{eina\+\_\+matrix3\+\_\+matrix3\+\_\+f16p16\+\_\+to()}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_gaecb63eb8f94f64e3e1119b05a84d670e}\label{group__Eina__Matrix3__Group_gaecb63eb8f94f64e3e1119b05a84d670e}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_matrix3\_f16p16\_to@{eina\_matrix3\_matrix3\_f16p16\_to}}
\index{eina\_matrix3\_matrix3\_f16p16\_to@{eina\_matrix3\_matrix3\_f16p16\_to}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_matrix3\_f16p16\_to()}{eina\_matrix3\_matrix3\_f16p16\_to()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix3\+\_\+matrix3\+\_\+f16p16\+\_\+to (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m,  }\item[{\mbox{\hyperlink{structEina__Matrix3__F16p16}{Eina\+\_\+\+Matrix3\+\_\+\+F16p16}} $\ast$}]{fm }\end{DoxyParamCaption})}



Transforms the given floating point matrix to the given fixed point matrix. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em m} & The floating point matrix. \\
\hline
\mbox{\texttt{ out}}  & {\em fm} & The fixed point matrix.\\
\hline
\end{DoxyParams}
This function transforms the floating point matrix {\ttfamily m} to a fixed point matrix and stores the coefficients into the fixed point matrix {\ttfamily fm}.

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


References \mbox{\hyperlink{group__Eina__Matrix3__Group_ga163ba9c263cd7a0f22c6b33078f05001}{eina\+\_\+matrix3\+\_\+fixed\+\_\+values\+\_\+get()}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga900246877eae4cba9a5fb2695871e641}\label{group__Eina__Matrix3__Group_ga900246877eae4cba9a5fb2695871e641}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_equal@{eina\_matrix3\_equal}}
\index{eina\_matrix3\_equal@{eina\_matrix3\_equal}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_equal()}{eina\_matrix3\_equal()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+matrix3\+\_\+equal (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m1,  }\item[{const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m2 }\end{DoxyParamCaption})}



Checks whether the two matrices are equivalent. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em m1} & The first matrix. \\
\hline
\mbox{\texttt{ in}}  & {\em m2} & The second matrix. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily EINA\+\_\+\+TRUE} if the two matrices are equal, {\ttfamily EINA\+\_\+\+FALSE} otherwise.
\end{DoxyReturn}
This function returns {\ttfamily EINA\+\_\+\+TRUE} if the matrices {\ttfamily m1} and {\ttfamily m2} are equal, {\ttfamily EINA\+\_\+\+FALSE} otherwise. No check is done on the matrices.

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


References \mbox{\hyperlink{group__Eina__Tools__Group_ga6bee37244b675b83d6a4f044a7a3d1e8}{EINA\+\_\+\+DBL\+\_\+\+EQ}}, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}}, \mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}}, \mbox{\hyperlink{struct__Eina__Matrix3_a3908b9ed66810de8c2e274c87c62e8f6}{\+\_\+\+Eina\+\_\+\+Matrix3\+::xx}}, \mbox{\hyperlink{struct__Eina__Matrix3_abdc60e921ce4cf85c879d06777177d78}{\+\_\+\+Eina\+\_\+\+Matrix3\+::xy}}, \mbox{\hyperlink{struct__Eina__Matrix3_ac1362c4bce1cb2373334565211ada1f5}{\+\_\+\+Eina\+\_\+\+Matrix3\+::xz}}, \mbox{\hyperlink{struct__Eina__Matrix3_a31224622c4ec3515eb8fbb21a5bcc7e9}{\+\_\+\+Eina\+\_\+\+Matrix3\+::yx}}, \mbox{\hyperlink{struct__Eina__Matrix3_ac2fff8906ff46146d3985351f633714a}{\+\_\+\+Eina\+\_\+\+Matrix3\+::yy}}, \mbox{\hyperlink{struct__Eina__Matrix3_a71f10719c2bcb869df3c9f872a4a3b5a}{\+\_\+\+Eina\+\_\+\+Matrix3\+::yz}}, \mbox{\hyperlink{struct__Eina__Matrix3_a79560f6f1a4ef4e394c652a78ac44677}{\+\_\+\+Eina\+\_\+\+Matrix3\+::zx}}, \mbox{\hyperlink{struct__Eina__Matrix3_ae474120685332f2fc8fe0a7fa329c022}{\+\_\+\+Eina\+\_\+\+Matrix3\+::zy}}, and \mbox{\hyperlink{struct__Eina__Matrix3_ad8e55bd7677f8a0de2b4ba79c7dfc2bb}{\+\_\+\+Eina\+\_\+\+Matrix3\+::zz}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_gad6f91abcdd12606ab730612aee290e44}\label{group__Eina__Matrix3__Group_gad6f91abcdd12606ab730612aee290e44}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_compose@{eina\_matrix3\_compose}}
\index{eina\_matrix3\_compose@{eina\_matrix3\_compose}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_compose()}{eina\_matrix3\_compose()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix3\+\_\+compose (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m1,  }\item[{const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m2,  }\item[{\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{dst }\end{DoxyParamCaption})}



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


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em m1} & The first matrix. Must be non-\/\+NULL. \\
\hline
\mbox{\texttt{ in}}  & {\em m2} & The second matrix. Must be non-\/\+NULL. \\
\hline
\mbox{\texttt{ out}}  & {\em dst} & 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.\+14 
\end{DoxySince}


Referenced by \mbox{\hyperlink{group__Eina__Matrix3__Group_gab7b7b96c55ef7498f273e4f25302f3e9}{eina\+\_\+matrix3\+\_\+multiply()}}, \mbox{\hyperlink{group__Eina__Matrix3__Group_ga813af53b0f049b082dd80bbafdf86292}{eina\+\_\+matrix3\+\_\+quad\+\_\+quad\+\_\+map()}}, \mbox{\hyperlink{group__Eina__Matrix3__Group_ga99226422c1a902fc9fbff84affee40db}{eina\+\_\+matrix3\+\_\+rotate()}}, \mbox{\hyperlink{group__Eina__Matrix3__Group_ga2236a4be9d115bca0bd551811970d641}{eina\+\_\+matrix3\+\_\+scale()}}, and \mbox{\hyperlink{group__Eina__Matrix3__Group_ga5e00a1aa7611ee13fda2f7fb4b7e79da}{eina\+\_\+matrix3\+\_\+translate()}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga5e00a1aa7611ee13fda2f7fb4b7e79da}\label{group__Eina__Matrix3__Group_ga5e00a1aa7611ee13fda2f7fb4b7e79da}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_translate@{eina\_matrix3\_translate}}
\index{eina\_matrix3\_translate@{eina\_matrix3\_translate}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_translate()}{eina\_matrix3\_translate()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix3\+\_\+translate (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m,  }\item[{double}]{tx,  }\item[{double}]{ty }\end{DoxyParamCaption})}



Sets the matrix values for a translation operation. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em m} & The matrix. \\
\hline
\mbox{\texttt{ in}}  & {\em tx} & The X coordinate translation. \\
\hline
\mbox{\texttt{ in}}  & {\em ty} & The Y coordinate translation.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+14 
\end{DoxySince}


References \mbox{\hyperlink{group__Eina__Matrix3__Group_gad6f91abcdd12606ab730612aee290e44}{eina\+\_\+matrix3\+\_\+compose()}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga2236a4be9d115bca0bd551811970d641}\label{group__Eina__Matrix3__Group_ga2236a4be9d115bca0bd551811970d641}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_scale@{eina\_matrix3\_scale}}
\index{eina\_matrix3\_scale@{eina\_matrix3\_scale}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_scale()}{eina\_matrix3\_scale()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix3\+\_\+scale (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m,  }\item[{double}]{sx,  }\item[{double}]{sy }\end{DoxyParamCaption})}



Sets the matrix values for a scaling operation. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em m} & The matrix. \\
\hline
\mbox{\texttt{ in}}  & {\em sx} & The X coordinate scaling factor. \\
\hline
\mbox{\texttt{ in}}  & {\em sy} & The Y coordinate scaling factor.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+14 
\end{DoxySince}


References \mbox{\hyperlink{group__Eina__Matrix3__Group_gad6f91abcdd12606ab730612aee290e44}{eina\+\_\+matrix3\+\_\+compose()}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga99226422c1a902fc9fbff84affee40db}\label{group__Eina__Matrix3__Group_ga99226422c1a902fc9fbff84affee40db}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_rotate@{eina\_matrix3\_rotate}}
\index{eina\_matrix3\_rotate@{eina\_matrix3\_rotate}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_rotate()}{eina\_matrix3\_rotate()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix3\+\_\+rotate (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m,  }\item[{double}]{rad }\end{DoxyParamCaption})}



Sets the matrix values for a rotation operation. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em m} & The matrix. \\
\hline
\mbox{\texttt{ in}}  & {\em rad} & The number of radians to rotate.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+14 
\end{DoxySince}


References \mbox{\hyperlink{group__Eina__Matrix3__Group_gad6f91abcdd12606ab730612aee290e44}{eina\+\_\+matrix3\+\_\+compose()}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_gaf38524a70caae1b0c5d13b7725afa260}\label{group__Eina__Matrix3__Group_gaf38524a70caae1b0c5d13b7725afa260}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_identity@{eina\_matrix3\_identity}}
\index{eina\_matrix3\_identity@{eina\_matrix3\_identity}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_identity()}{eina\_matrix3\_identity()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix3\+\_\+identity (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m }\end{DoxyParamCaption})}



Sets the given floating point matrix to the identity matrix. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em m} & The matrix to set to identity.\\
\hline
\end{DoxyParams}
This function sets {\ttfamily m} to the identity matrix. No check is done on {\ttfamily m}.

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


Referenced by \mbox{\hyperlink{group__Eina__Matrix3__Group_ga89c76a05ef4a317d6e01ac96132177f4}{eina\+\_\+matrix3\+\_\+inverse()}}, \mbox{\hyperlink{group__Eina__Matrix3__Group_ga9255d2f51c6e42e92ed8dc00828041aa}{eina\+\_\+matrix3\+\_\+position\+\_\+transform\+\_\+set()}}, and \mbox{\hyperlink{group__Eina__Matrix3__Group_gadb921aef98c2f0bef8acf1e0137d8b54}{eina\+\_\+matrix3\+\_\+scale\+\_\+transform\+\_\+set()}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga20986fb5efedca870f5f8b67aa8dc44d}\label{group__Eina__Matrix3__Group_ga20986fb5efedca870f5f8b67aa8dc44d}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_determinant@{eina\_matrix3\_determinant}}
\index{eina\_matrix3\_determinant@{eina\_matrix3\_determinant}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_determinant()}{eina\_matrix3\_determinant()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} double eina\+\_\+matrix3\+\_\+determinant (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\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.\+14 
\end{DoxySince}


Referenced by \mbox{\hyperlink{group__Eina__Matrix3__Group_ga89c76a05ef4a317d6e01ac96132177f4}{eina\+\_\+matrix3\+\_\+inverse()}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga99804386c6a5d4cbf53e5744c52aea10}\label{group__Eina__Matrix3__Group_ga99804386c6a5d4cbf53e5744c52aea10}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_divide@{eina\_matrix3\_divide}}
\index{eina\_matrix3\_divide@{eina\_matrix3\_divide}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_divide()}{eina\_matrix3\_divide()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix3\+\_\+divide (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m,  }\item[{double}]{scalar }\end{DoxyParamCaption})}



Divides the given matrix by a scalar number. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em m} & The matrix. \\
\hline
\mbox{\texttt{ in}}  & {\em scalar} & The scalar number.\\
\hline
\end{DoxyParams}
This function divides the matrix {\ttfamily m} by {\ttfamily scalar}. No check is done on {\ttfamily m}.

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


Referenced by \mbox{\hyperlink{group__Eina__Matrix3__Group_ga89c76a05ef4a317d6e01ac96132177f4}{eina\+\_\+matrix3\+\_\+inverse()}}, and \mbox{\hyperlink{group__Eina__Matrix3__Group_gaf3264d9057d9043d45f7a67b5f5db512}{eina\+\_\+matrix3\+\_\+quad\+\_\+square\+\_\+map()}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga89c76a05ef4a317d6e01ac96132177f4}\label{group__Eina__Matrix3__Group_ga89c76a05ef4a317d6e01ac96132177f4}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_inverse@{eina\_matrix3\_inverse}}
\index{eina\_matrix3\_inverse@{eina\_matrix3\_inverse}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_inverse()}{eina\_matrix3\_inverse()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix3\+\_\+inverse (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m,  }\item[{\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m2 }\end{DoxyParamCaption})}



Computes the inverse of the given matrix. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em m} & The source matrix. \\
\hline
\mbox{\texttt{ out}}  & {\em m2} & The inverse matrix.\\
\hline
\end{DoxyParams}
This function inverts the matrix {\ttfamily m} and stores the result in {\ttfamily m2}. No check is done on {\ttfamily m} or {\ttfamily m2}. If {\ttfamily m} cannot be inverted, then {\ttfamily m2} is set to the identity matrix.

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


References \mbox{\hyperlink{group__Eina__Tools__Group_ga6bee37244b675b83d6a4f044a7a3d1e8}{EINA\+\_\+\+DBL\+\_\+\+EQ}}, \mbox{\hyperlink{group__Eina__Matrix3__Group_ga6e7112eb6e63a598ea0222a85250ea65}{eina\+\_\+matrix3\+\_\+adjoint()}}, \mbox{\hyperlink{group__Eina__Matrix3__Group_ga20986fb5efedca870f5f8b67aa8dc44d}{eina\+\_\+matrix3\+\_\+determinant()}}, \mbox{\hyperlink{group__Eina__Matrix3__Group_ga99804386c6a5d4cbf53e5744c52aea10}{eina\+\_\+matrix3\+\_\+divide()}}, and \mbox{\hyperlink{group__Eina__Matrix3__Group_gaf38524a70caae1b0c5d13b7725afa260}{eina\+\_\+matrix3\+\_\+identity()}}.



Referenced by \mbox{\hyperlink{group__Eina__Matrix3__Group_gaf3264d9057d9043d45f7a67b5f5db512}{eina\+\_\+matrix3\+\_\+quad\+\_\+square\+\_\+map()}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga58de2e16994491b5a7353613ea18c9df}\label{group__Eina__Matrix3__Group_ga58de2e16994491b5a7353613ea18c9df}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_transpose@{eina\_matrix3\_transpose}}
\index{eina\_matrix3\_transpose@{eina\_matrix3\_transpose}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_transpose()}{eina\_matrix3\_transpose()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix3\+\_\+transpose (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m,  }\item[{\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{a }\end{DoxyParamCaption})}



Computes the transpose of the given matrix. 


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

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


Referenced by \mbox{\hyperlink{group__Eina__Matrix3__Group_ga6e7112eb6e63a598ea0222a85250ea65}{eina\+\_\+matrix3\+\_\+adjoint()}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_gafc8c25a141d6640285e1f7ce2087483e}\label{group__Eina__Matrix3__Group_gafc8c25a141d6640285e1f7ce2087483e}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_cofactor@{eina\_matrix3\_cofactor}}
\index{eina\_matrix3\_cofactor@{eina\_matrix3\_cofactor}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_cofactor()}{eina\_matrix3\_cofactor()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix3\+\_\+cofactor (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m,  }\item[{\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{a }\end{DoxyParamCaption})}



Computes the cofactor of the given matrix. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em m} & The source matrix. \\
\hline
\mbox{\texttt{ out}}  & {\em a} & The cofactored matrix.\\
\hline
\end{DoxyParams}
This function cofactors the matrix {\ttfamily m} and stores the result in {\ttfamily a}. No check is done on {\ttfamily m} or {\ttfamily a}. The cofactor of a matrix3 at row i, column j is computed by taking the determinant of the submatrix formed by deleting the i-\/th row and j-\/th column, and then multiplying by (-\/1)$^\wedge$(i+j).

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


Referenced by \mbox{\hyperlink{group__Eina__Matrix3__Group_ga6e7112eb6e63a598ea0222a85250ea65}{eina\+\_\+matrix3\+\_\+adjoint()}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga6e7112eb6e63a598ea0222a85250ea65}\label{group__Eina__Matrix3__Group_ga6e7112eb6e63a598ea0222a85250ea65}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_adjoint@{eina\_matrix3\_adjoint}}
\index{eina\_matrix3\_adjoint@{eina\_matrix3\_adjoint}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_adjoint()}{eina\_matrix3\_adjoint()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix3\+\_\+adjoint (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m,  }\item[{\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{a }\end{DoxyParamCaption})}



Computes the adjoint of the given matrix. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em m} & The matrix to be adjointed. \\
\hline
\mbox{\texttt{ out}}  & {\em a} & The adjoint matrix.\\
\hline
\end{DoxyParams}
This function finds the adjoint of the matrix {\ttfamily m} and stores the result in {\ttfamily a}. No check is done on {\ttfamily m} or {\ttfamily a}. The adjoint of a matrix3 is effectively the transpose of its cofactor.

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


References \mbox{\hyperlink{group__Eina__Matrix3__Group_gafc8c25a141d6640285e1f7ce2087483e}{eina\+\_\+matrix3\+\_\+cofactor()}}, and \mbox{\hyperlink{group__Eina__Matrix3__Group_ga58de2e16994491b5a7353613ea18c9df}{eina\+\_\+matrix3\+\_\+transpose()}}.



Referenced by \mbox{\hyperlink{group__Eina__Matrix3__Group_ga89c76a05ef4a317d6e01ac96132177f4}{eina\+\_\+matrix3\+\_\+inverse()}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga447b4ceb098a9598d5de30cf17be3c81}\label{group__Eina__Matrix3__Group_ga447b4ceb098a9598d5de30cf17be3c81}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_point\_transform@{eina\_matrix3\_point\_transform}}
\index{eina\_matrix3\_point\_transform@{eina\_matrix3\_point\_transform}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_point\_transform()}{eina\_matrix3\_point\_transform()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix3\+\_\+point\+\_\+transform (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m,  }\item[{double}]{x,  }\item[{double}]{y,  }\item[{double $\ast$}]{xr,  }\item[{double $\ast$}]{yr }\end{DoxyParamCaption})}



Computes the transform of a 2D point using the given matrix. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em m} & The transformation matrix to apply. \\
\hline
\mbox{\texttt{ in}}  & {\em x} & The x point to be transformed. \\
\hline
\mbox{\texttt{ in}}  & {\em y} & The y point to be transformed. \\
\hline
\mbox{\texttt{ out}}  & {\em xr} & The transformed x point. \\
\hline
\mbox{\texttt{ out}}  & {\em yr} & The transformed y point.\\
\hline
\end{DoxyParams}
Applies the transformation matrix {\ttfamily m} to the point (x,y), and stores the result in ($\ast$xr,$\ast$yr). No check is done on {\ttfamily m}; {\ttfamily xr} and {\ttfamily yr} must point to valid memory. A fast-\/path is included for if the zx and zy components of the matrix are zero.

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


References \mbox{\hyperlink{group__Eina__Tools__Group_ga6bee37244b675b83d6a4f044a7a3d1e8}{EINA\+\_\+\+DBL\+\_\+\+EQ}}.



Referenced by \mbox{\hyperlink{group__Eina__Matrix3__Group_ga45d1b6318b17de281a2668209e85e848}{eina\+\_\+matrix3\+\_\+rectangle\+\_\+transform()}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga45d1b6318b17de281a2668209e85e848}\label{group__Eina__Matrix3__Group_ga45d1b6318b17de281a2668209e85e848}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_rectangle\_transform@{eina\_matrix3\_rectangle\_transform}}
\index{eina\_matrix3\_rectangle\_transform@{eina\_matrix3\_rectangle\_transform}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_rectangle\_transform()}{eina\_matrix3\_rectangle\_transform()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix3\+\_\+rectangle\+\_\+transform (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m,  }\item[{const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{r,  }\item[{const \mbox{\hyperlink{group__Eina__Quad__Group_gadbfe5a151d5485f8f0f71baeddc82a6d}{Eina\+\_\+\+Quad}} $\ast$}]{q }\end{DoxyParamCaption})}



Computes the transformation of a rectangle using the given matrix. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em m} & The transformation matrix to apply. \\
\hline
\mbox{\texttt{ in}}  & {\em r} & The rectangle to be transformed. \\
\hline
\mbox{\texttt{ out}}  & {\em q} & The resultant transformed points.\\
\hline
\end{DoxyParams}
Performs a point transformation of each corner of the rectangle {\ttfamily r}, and stores the result in the quadrangle {\ttfamily q}. No checks are done on the inputs, and {\ttfamily q} must point to valid memory.

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


References \mbox{\hyperlink{group__Eina__Matrix3__Group_ga447b4ceb098a9598d5de30cf17be3c81}{eina\+\_\+matrix3\+\_\+point\+\_\+transform()}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga813af53b0f049b082dd80bbafdf86292}\label{group__Eina__Matrix3__Group_ga813af53b0f049b082dd80bbafdf86292}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_quad\_quad\_map@{eina\_matrix3\_quad\_quad\_map}}
\index{eina\_matrix3\_quad\_quad\_map@{eina\_matrix3\_quad\_quad\_map}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_quad\_quad\_map()}{eina\_matrix3\_quad\_quad\_map()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+matrix3\+\_\+quad\+\_\+quad\+\_\+map (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m,  }\item[{const \mbox{\hyperlink{group__Eina__Quad__Group_gadbfe5a151d5485f8f0f71baeddc82a6d}{Eina\+\_\+\+Quad}} $\ast$}]{src,  }\item[{const \mbox{\hyperlink{group__Eina__Quad__Group_gadbfe5a151d5485f8f0f71baeddc82a6d}{Eina\+\_\+\+Quad}} $\ast$}]{dst }\end{DoxyParamCaption})}



Creates a projective matrix that maps a quadrangle to a quadrangle. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em m} & The transformation matrix to create. \\
\hline
\mbox{\texttt{ in}}  & {\em src} & The source quadrangle. \\
\hline
\mbox{\texttt{ in}}  & {\em dst} & The destination quadrangle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily EINA\+\_\+\+TRUE} if matrix could be successfully created, {\ttfamily EINA\+\_\+\+FALSE} otherwise.
\end{DoxyReturn}
Calculates a matrix {\ttfamily m} that can be used to transform from an arbitrary source quadrangle {\ttfamily src} to another arbitrary quadrangle {\ttfamily dst}. 

References \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}}, \mbox{\hyperlink{group__Eina__Matrix3__Group_gad6f91abcdd12606ab730612aee290e44}{eina\+\_\+matrix3\+\_\+compose()}}, \mbox{\hyperlink{group__Eina__Matrix3__Group_gaf3264d9057d9043d45f7a67b5f5db512}{eina\+\_\+matrix3\+\_\+quad\+\_\+square\+\_\+map()}}, \mbox{\hyperlink{group__Eina__Matrix3__Group_ga7d4b45ef30215c96bbb893e49bccce54}{eina\+\_\+matrix3\+\_\+square\+\_\+quad\+\_\+map()}}, and \mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga7d4b45ef30215c96bbb893e49bccce54}\label{group__Eina__Matrix3__Group_ga7d4b45ef30215c96bbb893e49bccce54}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_square\_quad\_map@{eina\_matrix3\_square\_quad\_map}}
\index{eina\_matrix3\_square\_quad\_map@{eina\_matrix3\_square\_quad\_map}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_square\_quad\_map()}{eina\_matrix3\_square\_quad\_map()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+matrix3\+\_\+square\+\_\+quad\+\_\+map (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m,  }\item[{const \mbox{\hyperlink{group__Eina__Quad__Group_gadbfe5a151d5485f8f0f71baeddc82a6d}{Eina\+\_\+\+Quad}} $\ast$}]{q }\end{DoxyParamCaption})}



Creates a matrix for unit-\/square to quad mapping. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em m} & The transformation matrix to create. \\
\hline
\mbox{\texttt{ in}}  & {\em q} & The source quadrangle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily EINA\+\_\+\+TRUE} if matrix could be successfully created, {\ttfamily EINA\+\_\+\+FALSE} otherwise.
\end{DoxyReturn}
Calculates a matrix {\ttfamily m} that can be used to transform an arbitrary quadrangle {\ttfamily q} into a square. If {\ttfamily q} is a parallelogram, then a fast path affine transformation is used, otherwise it computes the matrix using a full projective transformation operation. No other checks are done on {\ttfamily m} or {\ttfamily q}.

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


References \mbox{\hyperlink{group__Eina__Tools__Group_ga6bee37244b675b83d6a4f044a7a3d1e8}{EINA\+\_\+\+DBL\+\_\+\+EQ}}, \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__Matrix3__Group_ga813af53b0f049b082dd80bbafdf86292}{eina\+\_\+matrix3\+\_\+quad\+\_\+quad\+\_\+map()}}, and \mbox{\hyperlink{group__Eina__Matrix3__Group_gaf3264d9057d9043d45f7a67b5f5db512}{eina\+\_\+matrix3\+\_\+quad\+\_\+square\+\_\+map()}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_gaf3264d9057d9043d45f7a67b5f5db512}\label{group__Eina__Matrix3__Group_gaf3264d9057d9043d45f7a67b5f5db512}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_quad\_square\_map@{eina\_matrix3\_quad\_square\_map}}
\index{eina\_matrix3\_quad\_square\_map@{eina\_matrix3\_quad\_square\_map}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_quad\_square\_map()}{eina\_matrix3\_quad\_square\_map()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+matrix3\+\_\+quad\+\_\+square\+\_\+map (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m,  }\item[{const \mbox{\hyperlink{group__Eina__Quad__Group_gadbfe5a151d5485f8f0f71baeddc82a6d}{Eina\+\_\+\+Quad}} $\ast$}]{q }\end{DoxyParamCaption})}



Creates a matrix for mapping squares to match quad. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em m} & The transformation matrix to create. \\
\hline
\mbox{\texttt{ in}}  & {\em q} & The source quadrangle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily EINA\+\_\+\+FALSE} on successful transform creation, {\ttfamily EINA\+\_\+\+FALSE} otherwise.
\end{DoxyReturn}
Calculates a matrix {\ttfamily m} that can be used to transform a square to fit a given quadrangle. The created matrix will always have its zz element equal to 1.\+0. The {\ttfamily m} matrix and {\ttfamily q} quad must be valid memory.

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


References \mbox{\hyperlink{group__Eina__Tools__Group_ga6bee37244b675b83d6a4f044a7a3d1e8}{EINA\+\_\+\+DBL\+\_\+\+EQ}}, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}}, \mbox{\hyperlink{group__Eina__Matrix3__Group_ga99804386c6a5d4cbf53e5744c52aea10}{eina\+\_\+matrix3\+\_\+divide()}}, \mbox{\hyperlink{group__Eina__Matrix3__Group_ga89c76a05ef4a317d6e01ac96132177f4}{eina\+\_\+matrix3\+\_\+inverse()}}, \mbox{\hyperlink{group__Eina__Matrix3__Group_ga7d4b45ef30215c96bbb893e49bccce54}{eina\+\_\+matrix3\+\_\+square\+\_\+quad\+\_\+map()}}, and \mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}}.



Referenced by \mbox{\hyperlink{group__Eina__Matrix3__Group_ga813af53b0f049b082dd80bbafdf86292}{eina\+\_\+matrix3\+\_\+quad\+\_\+quad\+\_\+map()}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_gafd899d4b787eef130d86892396e901b6}\label{group__Eina__Matrix3__Group_gafd899d4b787eef130d86892396e901b6}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_array\_set@{eina\_matrix3\_array\_set}}
\index{eina\_matrix3\_array\_set@{eina\_matrix3\_array\_set}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_array\_set()}{eina\_matrix3\_array\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix3\+\_\+array\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\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 array\mbox{[}9\mbox{]} of values.\\
\hline
\end{DoxyParams}
Uses the first 9 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 Eina\+\_\+\+Matrix3 structure.

\begin{DoxySince}{Since}
1.\+17 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Matrix3__Group_gafd13dec1cd7526f8364a438ff3275ca8}\label{group__Eina__Matrix3__Group_gafd13dec1cd7526f8364a438ff3275ca8}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_copy@{eina\_matrix3\_copy}}
\index{eina\_matrix3\_copy@{eina\_matrix3\_copy}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_copy()}{eina\_matrix3\_copy()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix3\+\_\+copy (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{dst,  }\item[{const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{src }\end{DoxyParamCaption})}



Copies a matrix. 


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


Referenced by \mbox{\hyperlink{group__Eina__Matrix3__Group_gab7b7b96c55ef7498f273e4f25302f3e9}{eina\+\_\+matrix3\+\_\+multiply()}}, and \mbox{\hyperlink{group__Eina__Matrix3__Group_gaf006364f743706283c0840a0fad4e5de}{eina\+\_\+matrix3\+\_\+multiply\+\_\+copy()}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_gab7b7b96c55ef7498f273e4f25302f3e9}\label{group__Eina__Matrix3__Group_gab7b7b96c55ef7498f273e4f25302f3e9}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_multiply@{eina\_matrix3\_multiply}}
\index{eina\_matrix3\_multiply@{eina\_matrix3\_multiply}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_multiply()}{eina\_matrix3\_multiply()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix3\+\_\+multiply (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{mat\+\_\+a,  }\item[{const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{mat\+\_\+b }\end{DoxyParamCaption})}



Multiplies two matrices. 


\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}
{\ttfamily out} must not point to the same structure as {\ttfamily mat\+\_\+a} or {\ttfamily mat\+\_\+b}, else the calculation results will be incorrect. Use \mbox{\hyperlink{group__Eina__Matrix3__Group_gaf006364f743706283c0840a0fad4e5de}{eina\+\_\+matrix3\+\_\+multiply\+\_\+copy()}} instead in this case.

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


References \mbox{\hyperlink{group__Eina__Matrix3__Group_gad6f91abcdd12606ab730612aee290e44}{eina\+\_\+matrix3\+\_\+compose()}}, \mbox{\hyperlink{group__Eina__Matrix3__Group_gafd13dec1cd7526f8364a438ff3275ca8}{eina\+\_\+matrix3\+\_\+copy()}}, \mbox{\hyperlink{group__Eina__Matrix3__Group_ga941fd9c576e97dd5d11aacebbece47d5}{eina\+\_\+matrix3\+\_\+type\+\_\+get()}}, and \mbox{\hyperlink{group__Eina__Matrix__Group_ggac9e258fd0ef943c6c6f86d7a732b73f5a3593bd6f89b1171d847fb6a5e901f862}{EINA\+\_\+\+MATRIX\+\_\+\+TYPE\+\_\+\+IDENTITY}}.



Referenced by \mbox{\hyperlink{group__Eina__Matrix3__Group_gaf006364f743706283c0840a0fad4e5de}{eina\+\_\+matrix3\+\_\+multiply\+\_\+copy()}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_gaf006364f743706283c0840a0fad4e5de}\label{group__Eina__Matrix3__Group_gaf006364f743706283c0840a0fad4e5de}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_multiply\_copy@{eina\_matrix3\_multiply\_copy}}
\index{eina\_matrix3\_multiply\_copy@{eina\_matrix3\_multiply\_copy}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_multiply\_copy()}{eina\_matrix3\_multiply\_copy()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix3\+\_\+multiply\+\_\+copy (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{mat\+\_\+a,  }\item[{const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{mat\+\_\+b }\end{DoxyParamCaption})}



Multiplies two matrices without overwriting them. 


\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__Matrix3__Group_gafd13dec1cd7526f8364a438ff3275ca8}{eina\+\_\+matrix3\+\_\+copy()}}, and \mbox{\hyperlink{group__Eina__Matrix3__Group_gab7b7b96c55ef7498f273e4f25302f3e9}{eina\+\_\+matrix3\+\_\+multiply()}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_gadb921aef98c2f0bef8acf1e0137d8b54}\label{group__Eina__Matrix3__Group_gadb921aef98c2f0bef8acf1e0137d8b54}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_scale\_transform\_set@{eina\_matrix3\_scale\_transform\_set}}
\index{eina\_matrix3\_scale\_transform\_set@{eina\_matrix3\_scale\_transform\_set}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_scale\_transform\_set()}{eina\_matrix3\_scale\_transform\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix3\+\_\+scale\+\_\+transform\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{out,  }\item[{double}]{s\+\_\+x,  }\item[{double}]{s\+\_\+y }\end{DoxyParamCaption})}



Sets the scale parameters (XX, YY) of a matrix. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The resulting matrix. \\
\hline
\mbox{\texttt{ in}}  & {\em s\+\_\+x} & The scale value for x. \\
\hline
\mbox{\texttt{ in}}  & {\em s\+\_\+y} & The scale value for y.\\
\hline
\end{DoxyParams}
Sets only the XX and YY components of the matrix, leaving the rest of the matrix as it was.

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


References \mbox{\hyperlink{group__Eina__Matrix3__Group_gaf38524a70caae1b0c5d13b7725afa260}{eina\+\_\+matrix3\+\_\+identity()}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga9255d2f51c6e42e92ed8dc00828041aa}\label{group__Eina__Matrix3__Group_ga9255d2f51c6e42e92ed8dc00828041aa}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_position\_transform\_set@{eina\_matrix3\_position\_transform\_set}}
\index{eina\_matrix3\_position\_transform\_set@{eina\_matrix3\_position\_transform\_set}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_position\_transform\_set()}{eina\_matrix3\_position\_transform\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix3\+\_\+position\+\_\+transform\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{out,  }\item[{const double}]{p\+\_\+x,  }\item[{const double}]{p\+\_\+y }\end{DoxyParamCaption})}



Sets the positional parameters (XZ, YZ) of a matrix. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The resulting matrix. \\
\hline
\mbox{\texttt{ in}}  & {\em p\+\_\+x} & The position value for x. \\
\hline
\mbox{\texttt{ in}}  & {\em p\+\_\+y} & The position value for y.\\
\hline
\end{DoxyParams}
Sets only the XZ and YZ components of the matrix, leaving the rest of the matrix as it was.

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


References \mbox{\hyperlink{group__Eina__Matrix3__Group_gaf38524a70caae1b0c5d13b7725afa260}{eina\+\_\+matrix3\+\_\+identity()}}.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga668eb2097e6428bbf5305b991a3153a1}\label{group__Eina__Matrix3__Group_ga668eb2097e6428bbf5305b991a3153a1}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_normal3\_matrix\_get@{eina\_normal3\_matrix\_get}}
\index{eina\_normal3\_matrix\_get@{eina\_normal3\_matrix\_get}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_normal3\_matrix\_get()}{eina\_normal3\_matrix\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+normal3\+\_\+matrix\+\_\+get (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{m }\end{DoxyParamCaption})}



Sets normal of the given matrix. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The resulting matrix. \\
\hline
\mbox{\texttt{ in}}  & {\em m} & The matrix.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+17 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga4d6e93da9c0d2b94aa9cbcdfe4323c71}\label{group__Eina__Matrix3__Group_ga4d6e93da9c0d2b94aa9cbcdfe4323c71}} 
\index{3x3 floating point matrices@{3x3 floating point matrices}!eina\_matrix3\_matrix4\_to@{eina\_matrix3\_matrix4\_to}}
\index{eina\_matrix3\_matrix4\_to@{eina\_matrix3\_matrix4\_to}!3x3 floating point matrices@{3x3 floating point matrices}}
\doxysubsubsection{\texorpdfstring{eina\_matrix3\_matrix4\_to()}{eina\_matrix3\_matrix4\_to()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+matrix3\+\_\+matrix4\+\_\+to (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{m4,  }\item[{const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m3 }\end{DoxyParamCaption})}



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


\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}
