\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 \mbox{\hyperlink{group__Eina__Matrix3__Group_ga5b0911176c8d5df13db64a3f6b6539b6}{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}} \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{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__Matrix__Group_ga3aec91bee6618dff67cb662d5136abbd}{Eina\+\_\+\+Matrix\+\_\+\+Type}} \mbox{\hyperlink{group__Eina__Matrix3__Group_gadb8cf45cd1a22f7a52d53f45866365c3}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_ga5a918521e09f28a4d7920adb90eb5e38}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_gad3272b8f27748b0858cc7ee7777f457f}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_gab1026f17517b830b36ce6c4d95719bde}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_gaddca6060f811e2e54c2a4463a489f562}{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_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Matrix3__Group_gae17ded59d27ebc9de70d7c3fc4b60cd9}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_gafb247ad2d00d9ca118e1a5e66081175b}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8a9e03fb6dffa0d225eb172be62d6790}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_ga7552c8ac1d07db0dfc864998c438fada}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_gaa6b7d0fe301e86fbab6978b93f1f6463}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_gaef87f552ab1c00ae32f0396cda998de8}{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 
double \mbox{\hyperlink{group__Eina__Matrix3__Group_ga89bae0174615d096b40e0b56600fb3af}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_ga50f4cec7c36f27debc54784366119ad9}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_ga2829c4e4f4697cf83dde4a0818871d96}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_gacd98030058191df8442bf4a0acdc3df5}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_gad5d339e01c63db1e81ee9bdfd5ac8f12}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_ga7634198d262398a8fdb1d0e734e58d26}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_gac0a681d6b7fb71c16eefc5557e9709c3}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_ga7a4de4c7ee8e3d97621382497bb5dd23}{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_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Matrix3__Group_ga7786bb597f5622d27c018c3c68448dd1}{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_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Matrix3__Group_ga7e9028b2971abceef83f8bc97dea58e1}{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_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Matrix3__Group_ga69309f8c3c1821b8329804f2f7dacfa1}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_ga3cc344111120f62bb33036a08a1996ad}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_ga4540eb5b348e3294c192abe49c0fa277}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_ga5fd26a794eab0a1cb74d05ba0c693eab}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_ga25ac1af16f1f72a28c65916f035b2e0f}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_ga9539aaf6d8202888163c2ee2daf34b9e}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_ga45b5d65dd8a495d7dd655cc341ce9fea}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_gac85fc600ff04f7eaf9c9592437190e1b}{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 
void \mbox{\hyperlink{group__Eina__Matrix3__Group_ga68de476b0caadb49b1b5ae7db62db1d5}{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_gadb8cf45cd1a22f7a52d53f45866365c3}\label{group__Eina__Matrix3__Group_gadb8cf45cd1a22f7a52d53f45866365c3}} 
\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__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 EINA\+\_\+\+DBL\+\_\+\+EQ, EINA\+\_\+\+MATRIX\+\_\+\+TYPE\+\_\+\+AFFINE, EINA\+\_\+\+MATRIX\+\_\+\+TYPE\+\_\+\+IDENTITY, and EINA\+\_\+\+MATRIX\+\_\+\+TYPE\+\_\+\+PROJECTIVE.



Referenced by eina\+\_\+matrix3\+\_\+multiply().

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga5a918521e09f28a4d7920adb90eb5e38}\label{group__Eina__Matrix3__Group_ga5a918521e09f28a4d7920adb90eb5e38}} 
\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 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_gad3272b8f27748b0858cc7ee7777f457f}{eina\+\_\+matrix3\+\_\+values\+\_\+get()}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+14 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Matrix3__Group_gad3272b8f27748b0858cc7ee7777f457f}\label{group__Eina__Matrix3__Group_gad3272b8f27748b0858cc7ee7777f457f}} 
\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 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_ga5a918521e09f28a4d7920adb90eb5e38}{eina\+\_\+matrix3\+\_\+values\+\_\+set()}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+14 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Matrix3__Group_gab1026f17517b830b36ce6c4d95719bde}\label{group__Eina__Matrix3__Group_gab1026f17517b830b36ce6c4d95719bde}} 
\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 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_ga5a918521e09f28a4d7920adb90eb5e38}{eina\+\_\+matrix3\+\_\+values\+\_\+set()}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+14 
\end{DoxySince}


References eina\+\_\+f16p16\+\_\+double\+\_\+from().



Referenced by eina\+\_\+matrix3\+\_\+matrix3\+\_\+f16p16\+\_\+to().

\mbox{\Hypertarget{group__Eina__Matrix3__Group_gaddca6060f811e2e54c2a4463a489f562}\label{group__Eina__Matrix3__Group_gaddca6060f811e2e54c2a4463a489f562}} 
\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 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 eina\+\_\+matrix3\+\_\+fixed\+\_\+values\+\_\+get().

\mbox{\Hypertarget{group__Eina__Matrix3__Group_gae17ded59d27ebc9de70d7c3fc4b60cd9}\label{group__Eina__Matrix3__Group_gae17ded59d27ebc9de70d7c3fc4b60cd9}} 
\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_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 EINA\+\_\+\+DBL\+\_\+\+EQ, EINA\+\_\+\+FALSE, EINA\+\_\+\+TRUE, \+\_\+\+Eina\+\_\+\+Matrix3\+::xx, \+\_\+\+Eina\+\_\+\+Matrix3\+::xy, \+\_\+\+Eina\+\_\+\+Matrix3\+::xz, \+\_\+\+Eina\+\_\+\+Matrix3\+::yx, \+\_\+\+Eina\+\_\+\+Matrix3\+::yy, \+\_\+\+Eina\+\_\+\+Matrix3\+::yz, \+\_\+\+Eina\+\_\+\+Matrix3\+::zx, \+\_\+\+Eina\+\_\+\+Matrix3\+::zy, and \+\_\+\+Eina\+\_\+\+Matrix3\+::zz.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_gafb247ad2d00d9ca118e1a5e66081175b}\label{group__Eina__Matrix3__Group_gafb247ad2d00d9ca118e1a5e66081175b}} 
\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 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 eina\+\_\+matrix3\+\_\+multiply(), eina\+\_\+matrix3\+\_\+quad\+\_\+quad\+\_\+map(), eina\+\_\+matrix3\+\_\+rotate(), eina\+\_\+matrix3\+\_\+scale(), and eina\+\_\+matrix3\+\_\+translate().

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga8a9e03fb6dffa0d225eb172be62d6790}\label{group__Eina__Matrix3__Group_ga8a9e03fb6dffa0d225eb172be62d6790}} 
\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 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 eina\+\_\+matrix3\+\_\+compose().

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga7552c8ac1d07db0dfc864998c438fada}\label{group__Eina__Matrix3__Group_ga7552c8ac1d07db0dfc864998c438fada}} 
\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 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 eina\+\_\+matrix3\+\_\+compose().

\mbox{\Hypertarget{group__Eina__Matrix3__Group_gaa6b7d0fe301e86fbab6978b93f1f6463}\label{group__Eina__Matrix3__Group_gaa6b7d0fe301e86fbab6978b93f1f6463}} 
\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 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 eina\+\_\+matrix3\+\_\+compose().

\mbox{\Hypertarget{group__Eina__Matrix3__Group_gaef87f552ab1c00ae32f0396cda998de8}\label{group__Eina__Matrix3__Group_gaef87f552ab1c00ae32f0396cda998de8}} 
\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 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 eina\+\_\+matrix3\+\_\+inverse(), eina\+\_\+matrix3\+\_\+position\+\_\+transform\+\_\+set(), and eina\+\_\+matrix3\+\_\+scale\+\_\+transform\+\_\+set().

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga89bae0174615d096b40e0b56600fb3af}\label{group__Eina__Matrix3__Group_ga89bae0174615d096b40e0b56600fb3af}} 
\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 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 eina\+\_\+matrix3\+\_\+inverse().

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga50f4cec7c36f27debc54784366119ad9}\label{group__Eina__Matrix3__Group_ga50f4cec7c36f27debc54784366119ad9}} 
\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 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 eina\+\_\+matrix3\+\_\+inverse(), and eina\+\_\+matrix3\+\_\+quad\+\_\+square\+\_\+map().

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga2829c4e4f4697cf83dde4a0818871d96}\label{group__Eina__Matrix3__Group_ga2829c4e4f4697cf83dde4a0818871d96}} 
\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 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 EINA\+\_\+\+DBL\+\_\+\+EQ, eina\+\_\+matrix3\+\_\+adjoint(), eina\+\_\+matrix3\+\_\+determinant(), eina\+\_\+matrix3\+\_\+divide(), and eina\+\_\+matrix3\+\_\+identity().



Referenced by eina\+\_\+matrix3\+\_\+quad\+\_\+square\+\_\+map().

\mbox{\Hypertarget{group__Eina__Matrix3__Group_gacd98030058191df8442bf4a0acdc3df5}\label{group__Eina__Matrix3__Group_gacd98030058191df8442bf4a0acdc3df5}} 
\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 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 eina\+\_\+matrix3\+\_\+adjoint().

\mbox{\Hypertarget{group__Eina__Matrix3__Group_gad5d339e01c63db1e81ee9bdfd5ac8f12}\label{group__Eina__Matrix3__Group_gad5d339e01c63db1e81ee9bdfd5ac8f12}} 
\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 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 eina\+\_\+matrix3\+\_\+adjoint().

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga7634198d262398a8fdb1d0e734e58d26}\label{group__Eina__Matrix3__Group_ga7634198d262398a8fdb1d0e734e58d26}} 
\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 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 eina\+\_\+matrix3\+\_\+cofactor(), and eina\+\_\+matrix3\+\_\+transpose().



Referenced by eina\+\_\+matrix3\+\_\+inverse().

\mbox{\Hypertarget{group__Eina__Matrix3__Group_gac0a681d6b7fb71c16eefc5557e9709c3}\label{group__Eina__Matrix3__Group_gac0a681d6b7fb71c16eefc5557e9709c3}} 
\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 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 EINA\+\_\+\+DBL\+\_\+\+EQ.



Referenced by eina\+\_\+matrix3\+\_\+rectangle\+\_\+transform().

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga7a4de4c7ee8e3d97621382497bb5dd23}\label{group__Eina__Matrix3__Group_ga7a4de4c7ee8e3d97621382497bb5dd23}} 
\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 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 eina\+\_\+matrix3\+\_\+point\+\_\+transform().

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga7786bb597f5622d27c018c3c68448dd1}\label{group__Eina__Matrix3__Group_ga7786bb597f5622d27c018c3c68448dd1}} 
\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_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 EINA\+\_\+\+FALSE, eina\+\_\+matrix3\+\_\+compose(), eina\+\_\+matrix3\+\_\+quad\+\_\+square\+\_\+map(), eina\+\_\+matrix3\+\_\+square\+\_\+quad\+\_\+map(), and EINA\+\_\+\+TRUE.

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga7e9028b2971abceef83f8bc97dea58e1}\label{group__Eina__Matrix3__Group_ga7e9028b2971abceef83f8bc97dea58e1}} 
\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_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 EINA\+\_\+\+DBL\+\_\+\+EQ, EINA\+\_\+\+FALSE, and EINA\+\_\+\+TRUE.



Referenced by eina\+\_\+matrix3\+\_\+quad\+\_\+quad\+\_\+map(), and eina\+\_\+matrix3\+\_\+quad\+\_\+square\+\_\+map().

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga69309f8c3c1821b8329804f2f7dacfa1}\label{group__Eina__Matrix3__Group_ga69309f8c3c1821b8329804f2f7dacfa1}} 
\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_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 EINA\+\_\+\+DBL\+\_\+\+EQ, EINA\+\_\+\+FALSE, eina\+\_\+matrix3\+\_\+divide(), eina\+\_\+matrix3\+\_\+inverse(), eina\+\_\+matrix3\+\_\+square\+\_\+quad\+\_\+map(), and EINA\+\_\+\+TRUE.



Referenced by eina\+\_\+matrix3\+\_\+quad\+\_\+quad\+\_\+map().

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga3cc344111120f62bb33036a08a1996ad}\label{group__Eina__Matrix3__Group_ga3cc344111120f62bb33036a08a1996ad}} 
\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 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_ga4540eb5b348e3294c192abe49c0fa277}\label{group__Eina__Matrix3__Group_ga4540eb5b348e3294c192abe49c0fa277}} 
\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 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 eina\+\_\+matrix3\+\_\+multiply(), and eina\+\_\+matrix3\+\_\+multiply\+\_\+copy().

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga5fd26a794eab0a1cb74d05ba0c693eab}\label{group__Eina__Matrix3__Group_ga5fd26a794eab0a1cb74d05ba0c693eab}} 
\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 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_ga25ac1af16f1f72a28c65916f035b2e0f}{eina\+\_\+matrix3\+\_\+multiply\+\_\+copy()}} instead in this case.

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


References eina\+\_\+matrix3\+\_\+compose(), eina\+\_\+matrix3\+\_\+copy(), eina\+\_\+matrix3\+\_\+type\+\_\+get(), and EINA\+\_\+\+MATRIX\+\_\+\+TYPE\+\_\+\+IDENTITY.



Referenced by eina\+\_\+matrix3\+\_\+multiply\+\_\+copy().

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga25ac1af16f1f72a28c65916f035b2e0f}\label{group__Eina__Matrix3__Group_ga25ac1af16f1f72a28c65916f035b2e0f}} 
\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 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 eina\+\_\+matrix3\+\_\+copy(), and eina\+\_\+matrix3\+\_\+multiply().

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga9539aaf6d8202888163c2ee2daf34b9e}\label{group__Eina__Matrix3__Group_ga9539aaf6d8202888163c2ee2daf34b9e}} 
\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 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 eina\+\_\+matrix3\+\_\+identity().

\mbox{\Hypertarget{group__Eina__Matrix3__Group_ga45b5d65dd8a495d7dd655cc341ce9fea}\label{group__Eina__Matrix3__Group_ga45b5d65dd8a495d7dd655cc341ce9fea}} 
\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 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 eina\+\_\+matrix3\+\_\+identity().

\mbox{\Hypertarget{group__Eina__Matrix3__Group_gac85fc600ff04f7eaf9c9592437190e1b}\label{group__Eina__Matrix3__Group_gac85fc600ff04f7eaf9c9592437190e1b}} 
\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 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_ga68de476b0caadb49b1b5ae7db62db1d5}\label{group__Eina__Matrix3__Group_ga68de476b0caadb49b1b5ae7db62db1d5}} 
\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 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}
