\hypertarget{group__Eina__Vector3}{}\doxysection{Floating point vectors in 3D}
\label{group__Eina__Vector3}\index{Floating point vectors in 3D@{Floating point vectors in 3D}}


3D vector definition and operations  


\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{struct__Eina__Vector3}{\+\_\+\+Eina\+\_\+\+Vector3}}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static void \mbox{\hyperlink{group__Eina__Vector3_gaa0c091b8285ca7e0764458df5b34e5cf}{eina\+\_\+vector3\+\_\+set}} (\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$dst, double x, double y, double z)
\begin{DoxyCompactList}\small\item\em Set parameters to vector. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{group__Eina__Vector3_ga26ba8b4709f2708f0238470cbb4fd953}{eina\+\_\+vector3\+\_\+array\+\_\+set}} (\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$dst, const double $\ast$v)
\begin{DoxyCompactList}\small\item\em Set array to vector. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{group__Eina__Vector3_gafadd1cf65ea3a7a021e90696fabe12d2}{eina\+\_\+vector3\+\_\+copy}} (\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$dst, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$src)
\begin{DoxyCompactList}\small\item\em Copy vector. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{group__Eina__Vector3_ga9f9873047cea621f20a674ad051fdeb3}{eina\+\_\+vector3\+\_\+negate}} (\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$out, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$v)
\begin{DoxyCompactList}\small\item\em Make negative vector. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{group__Eina__Vector3_gab289a321c369b9fe2e3cb423c42f6dab}{eina\+\_\+vector3\+\_\+add}} (\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$out, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$a, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$b)
\begin{DoxyCompactList}\small\item\em Add two vectors. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{group__Eina__Vector3_ga945f0b8033aeafce8d2a61603b679cc5}{eina\+\_\+vector3\+\_\+subtract}} (\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$out, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$a, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$b)
\begin{DoxyCompactList}\small\item\em Subtract two vectors. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{group__Eina__Vector3_ga18a8e89b6a8a48765b8d86e5ab5fee4b}{eina\+\_\+vector3\+\_\+scale}} (\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$out, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$v, double scale)
\begin{DoxyCompactList}\small\item\em Scale vector. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{group__Eina__Vector3_ga5a094df34683785d687192500c4ce0c9}{eina\+\_\+vector3\+\_\+multiply}} (\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$out, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$a, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$b)
\begin{DoxyCompactList}\small\item\em Multiply two vectors. \end{DoxyCompactList}\item 
static double \mbox{\hyperlink{group__Eina__Vector3_ga84d676ecd294c6db5caa662b43106117}{eina\+\_\+vector3\+\_\+dot\+\_\+product}} (const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$a, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$b)
\begin{DoxyCompactList}\small\item\em Return the dot product of the two vectors. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{group__Eina__Vector3_ga36b62e60cdb35a61d32677137b4955e4}{eina\+\_\+vector3\+\_\+cross\+\_\+product}} (\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$out, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$a, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$b)
\begin{DoxyCompactList}\small\item\em Create the cross product of the two vectors. \end{DoxyCompactList}\item 
static double \mbox{\hyperlink{group__Eina__Vector3_gab88eaac3949daad9cebbb569d1b74870}{eina\+\_\+vector3\+\_\+length\+\_\+get}} (const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$v)
\begin{DoxyCompactList}\small\item\em Return the length of the given vector. \end{DoxyCompactList}\item 
static double \mbox{\hyperlink{group__Eina__Vector3_gaaa968e7b8d9abd0963d6d3ab357035bf}{eina\+\_\+vector3\+\_\+length\+\_\+square\+\_\+get}} (const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$v)
\begin{DoxyCompactList}\small\item\em Return the length in square of the given vector. \end{DoxyCompactList}\item 
static double \mbox{\hyperlink{group__Eina__Vector3_ga8a927618e96edb4ab4e2a726e6d89400}{eina\+\_\+vector3\+\_\+distance\+\_\+get}} (const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$a, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$b)
\begin{DoxyCompactList}\small\item\em Return the distance between of two vectors. \end{DoxyCompactList}\item 
static double \mbox{\hyperlink{group__Eina__Vector3_ga6c553851c2465f06b2295c7e3b34b505}{eina\+\_\+vector3\+\_\+distance\+\_\+square\+\_\+get}} (const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$a, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$b)
\begin{DoxyCompactList}\small\item\em Return the distance in square between of two vectors. \end{DoxyCompactList}\item 
static double \mbox{\hyperlink{group__Eina__Vector3_gadb1ce8ccd2a7cbff8753cfec21d95912}{eina\+\_\+vector3\+\_\+angle\+\_\+get}} (const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$a, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$b)
\begin{DoxyCompactList}\small\item\em Return the angle between of two vectors. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{group__Eina__Vector3_ga57fc76277d247b69c82dc0dfc7dd246b}{eina\+\_\+vector3\+\_\+normalize}} (\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$out, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$v)
\begin{DoxyCompactList}\small\item\em normalize vector. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{group__Eina__Vector3_ga348b423dc0ea20719b70219d00a49190}{eina\+\_\+vector3\+\_\+transform}} (\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$out, const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$m, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$v)
\begin{DoxyCompactList}\small\item\em Transform vector. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{group__Eina__Vector3_ga95eaa77ad1f490b4a3e88a045bc6547f}{eina\+\_\+vector3\+\_\+homogeneous\+\_\+direction\+\_\+transform}} (\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$out, const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$m, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$v)
\begin{DoxyCompactList}\small\item\em Homogeneous direction transform vector. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{group__Eina__Vector3_ga72de1f40af4d381d3b88aea613fe5aa9}{eina\+\_\+vector3\+\_\+homogeneous\+\_\+position\+\_\+transform}} (\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$out, const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$m, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$v)
\begin{DoxyCompactList}\small\item\em Homogeneous position transform vector. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{group__Eina__Vector3_ga756d44beffff650f1c52ebf862303903}{eina\+\_\+vector3\+\_\+quaternion\+\_\+rotate}} (\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$out, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$v, const \mbox{\hyperlink{struct__Eina__Quaternion}{Eina\+\_\+\+Quaternion}} $\ast$q)
\begin{DoxyCompactList}\small\item\em Rotate vector. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{group__Eina__Vector3_ga1919fd74cea70f25cc465b65b83d8bfb}{eina\+\_\+vector3\+\_\+orthogonal\+\_\+projection\+\_\+on\+\_\+plane}} (\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$out, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$v, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$normal)
\begin{DoxyCompactList}\small\item\em Create orthogonal projection on plane between vector and normal. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{group__Eina__Vector3_ga1ab390ffa096454788d07e3011ffe8fd}{eina\+\_\+vector3\+\_\+plane\+\_\+by\+\_\+points}} (\mbox{\hyperlink{struct__Eina__Quaternion}{Eina\+\_\+\+Quaternion}} $\ast$out, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$a, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$b, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$c)
\begin{DoxyCompactList}\small\item\em Plane by points between three vectors. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{group__Eina__Vector3_ga8261742aca0eb171a04c61db419d1361}{eina\+\_\+vector3\+\_\+homogeneous\+\_\+position\+\_\+set}} (\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$out, const \mbox{\hyperlink{struct__Eina__Quaternion}{Eina\+\_\+\+Quaternion}} $\ast$v)
\begin{DoxyCompactList}\small\item\em Homogeneous position set. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{group__Eina__Vector3_gaca39dd23909943efce732b065c4b9618}{eina\+\_\+vector3\+\_\+homogeneous\+\_\+direction\+\_\+set}} (\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$out, const \mbox{\hyperlink{struct__Eina__Quaternion}{Eina\+\_\+\+Quaternion}} $\ast$v)
\begin{DoxyCompactList}\small\item\em Homogeneous direction set. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Vector3_ga0242462095b98d60da4ddc936c7ecdc0}{eina\+\_\+vector3\+\_\+equivalent}} (\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$a, const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$b)
\begin{DoxyCompactList}\small\item\em Check the equivalent between of two vectors. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Vector3_gab752eb269eda6b5f838c0120917b5309}{eina\+\_\+vector3\+\_\+triangle\+\_\+equivalent}} (\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$v0, \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$v1, \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$v2, \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$w0, \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$w1, \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$w2)
\begin{DoxyCompactList}\small\item\em Check the equivalent between of two triangles of vectors. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
3D vector definition and operations 



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__Eina__Vector3_gaa0c091b8285ca7e0764458df5b34e5cf}\label{group__Eina__Vector3_gaa0c091b8285ca7e0764458df5b34e5cf}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_set@{eina\_vector3\_set}}
\index{eina\_vector3\_set@{eina\_vector3\_set}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_set()}{eina\_vector3\_set()}}
{\footnotesize\ttfamily static void eina\+\_\+vector3\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{dst,  }\item[{double}]{x,  }\item[{double}]{y,  }\item[{double}]{z }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Set parameters to vector. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em dst} & The resulting vector. \\
\hline
\mbox{\texttt{ in}}  & {\em x} & The x component. \\
\hline
\mbox{\texttt{ in}}  & {\em y} & The y component. \\
\hline
\mbox{\texttt{ in}}  & {\em z} & The z component.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_ga26ba8b4709f2708f0238470cbb4fd953}\label{group__Eina__Vector3_ga26ba8b4709f2708f0238470cbb4fd953}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_array\_set@{eina\_vector3\_array\_set}}
\index{eina\_vector3\_array\_set@{eina\_vector3\_array\_set}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_array\_set()}{eina\_vector3\_array\_set()}}
{\footnotesize\ttfamily static void eina\+\_\+vector3\+\_\+array\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{dst,  }\item[{const double $\ast$}]{v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Set array to vector. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em dst} & The resulting vector. \\
\hline
\mbox{\texttt{ in}}  & {\em v} & The the array\mbox{[}3\mbox{]} for set.\\
\hline
\end{DoxyParams}
Set to vector first 3 elements from array.

\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_gafadd1cf65ea3a7a021e90696fabe12d2}\label{group__Eina__Vector3_gafadd1cf65ea3a7a021e90696fabe12d2}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_copy@{eina\_vector3\_copy}}
\index{eina\_vector3\_copy@{eina\_vector3\_copy}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_copy()}{eina\_vector3\_copy()}}
{\footnotesize\ttfamily static void eina\+\_\+vector3\+\_\+copy (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{dst,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{src }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Copy vector. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em dst} & The vector copy. \\
\hline
\mbox{\texttt{ in}}  & {\em src} & The vector for copy.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_ga9f9873047cea621f20a674ad051fdeb3}\label{group__Eina__Vector3_ga9f9873047cea621f20a674ad051fdeb3}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_negate@{eina\_vector3\_negate}}
\index{eina\_vector3\_negate@{eina\_vector3\_negate}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_negate()}{eina\_vector3\_negate()}}
{\footnotesize\ttfamily static void eina\+\_\+vector3\+\_\+negate (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Make negative vector. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The resulting vector. \\
\hline
\mbox{\texttt{ in}}  & {\em v} & The current vector.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_gab289a321c369b9fe2e3cb423c42f6dab}\label{group__Eina__Vector3_gab289a321c369b9fe2e3cb423c42f6dab}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_add@{eina\_vector3\_add}}
\index{eina\_vector3\_add@{eina\_vector3\_add}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_add()}{eina\_vector3\_add()}}
{\footnotesize\ttfamily static void eina\+\_\+vector3\+\_\+add (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{a,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{b }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Add two vectors. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The resulting vector. \\
\hline
\mbox{\texttt{ in}}  & {\em a} & The first member of the add. \\
\hline
\mbox{\texttt{ in}}  & {\em b} & The second member of the add.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_ga945f0b8033aeafce8d2a61603b679cc5}\label{group__Eina__Vector3_ga945f0b8033aeafce8d2a61603b679cc5}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_subtract@{eina\_vector3\_subtract}}
\index{eina\_vector3\_subtract@{eina\_vector3\_subtract}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_subtract()}{eina\_vector3\_subtract()}}
{\footnotesize\ttfamily static void eina\+\_\+vector3\+\_\+subtract (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{a,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{b }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Subtract two vectors. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The resulting vector \\
\hline
\mbox{\texttt{ in}}  & {\em a} & The first member of the subtract \\
\hline
\mbox{\texttt{ in}}  & {\em b} & The second member of the subtract\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_ga18a8e89b6a8a48765b8d86e5ab5fee4b}\label{group__Eina__Vector3_ga18a8e89b6a8a48765b8d86e5ab5fee4b}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_scale@{eina\_vector3\_scale}}
\index{eina\_vector3\_scale@{eina\_vector3\_scale}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_scale()}{eina\_vector3\_scale()}}
{\footnotesize\ttfamily static void eina\+\_\+vector3\+\_\+scale (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{v,  }\item[{double}]{scale }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Scale vector. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The resulting vector. \\
\hline
\mbox{\texttt{ in}}  & {\em v} & The vector for scale. \\
\hline
\mbox{\texttt{ in}}  & {\em scale} & The scale value.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_ga5a094df34683785d687192500c4ce0c9}\label{group__Eina__Vector3_ga5a094df34683785d687192500c4ce0c9}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_multiply@{eina\_vector3\_multiply}}
\index{eina\_vector3\_multiply@{eina\_vector3\_multiply}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_multiply()}{eina\_vector3\_multiply()}}
{\footnotesize\ttfamily static void eina\+\_\+vector3\+\_\+multiply (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{a,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{b }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Multiply two vectors. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The resulting vector \\
\hline
\mbox{\texttt{ in}}  & {\em a} & The first member \\
\hline
\mbox{\texttt{ in}}  & {\em b} & The second member\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_ga84d676ecd294c6db5caa662b43106117}\label{group__Eina__Vector3_ga84d676ecd294c6db5caa662b43106117}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_dot\_product@{eina\_vector3\_dot\_product}}
\index{eina\_vector3\_dot\_product@{eina\_vector3\_dot\_product}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_dot\_product()}{eina\_vector3\_dot\_product()}}
{\footnotesize\ttfamily static double eina\+\_\+vector3\+\_\+dot\+\_\+product (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{a,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{b }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Return the dot product of the two vectors. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em a} & The first member. \\
\hline
\mbox{\texttt{ in}}  & {\em b} & The second member. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The dot product.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_ga36b62e60cdb35a61d32677137b4955e4}\label{group__Eina__Vector3_ga36b62e60cdb35a61d32677137b4955e4}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_cross\_product@{eina\_vector3\_cross\_product}}
\index{eina\_vector3\_cross\_product@{eina\_vector3\_cross\_product}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_cross\_product()}{eina\_vector3\_cross\_product()}}
{\footnotesize\ttfamily static void eina\+\_\+vector3\+\_\+cross\+\_\+product (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{a,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{b }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Create the cross product of the two vectors. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The resulting vector. \\
\hline
\mbox{\texttt{ in}}  & {\em a} & The first member. \\
\hline
\mbox{\texttt{ in}}  & {\em b} & The second member.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_gab88eaac3949daad9cebbb569d1b74870}\label{group__Eina__Vector3_gab88eaac3949daad9cebbb569d1b74870}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_length\_get@{eina\_vector3\_length\_get}}
\index{eina\_vector3\_length\_get@{eina\_vector3\_length\_get}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_length\_get()}{eina\_vector3\_length\_get()}}
{\footnotesize\ttfamily static double eina\+\_\+vector3\+\_\+length\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Return the length of the given vector. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em v} & The vector. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The length.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_gaaa968e7b8d9abd0963d6d3ab357035bf}\label{group__Eina__Vector3_gaaa968e7b8d9abd0963d6d3ab357035bf}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_length\_square\_get@{eina\_vector3\_length\_square\_get}}
\index{eina\_vector3\_length\_square\_get@{eina\_vector3\_length\_square\_get}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_length\_square\_get()}{eina\_vector3\_length\_square\_get()}}
{\footnotesize\ttfamily static double eina\+\_\+vector3\+\_\+length\+\_\+square\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Return the length in square of the given vector. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em v} & The vector. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The length in square.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_ga8a927618e96edb4ab4e2a726e6d89400}\label{group__Eina__Vector3_ga8a927618e96edb4ab4e2a726e6d89400}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_distance\_get@{eina\_vector3\_distance\_get}}
\index{eina\_vector3\_distance\_get@{eina\_vector3\_distance\_get}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_distance\_get()}{eina\_vector3\_distance\_get()}}
{\footnotesize\ttfamily static double eina\+\_\+vector3\+\_\+distance\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{a,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{b }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Return the distance between of two vectors. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em a} & The first vector. \\
\hline
\mbox{\texttt{ in}}  & {\em b} & The second vector. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The distance.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_ga6c553851c2465f06b2295c7e3b34b505}\label{group__Eina__Vector3_ga6c553851c2465f06b2295c7e3b34b505}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_distance\_square\_get@{eina\_vector3\_distance\_square\_get}}
\index{eina\_vector3\_distance\_square\_get@{eina\_vector3\_distance\_square\_get}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_distance\_square\_get()}{eina\_vector3\_distance\_square\_get()}}
{\footnotesize\ttfamily static double eina\+\_\+vector3\+\_\+distance\+\_\+square\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{a,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{b }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Return the distance in square between of two vectors. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em a} & The first vector. \\
\hline
\mbox{\texttt{ in}}  & {\em b} & The second vector. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The distance in square.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_gadb1ce8ccd2a7cbff8753cfec21d95912}\label{group__Eina__Vector3_gadb1ce8ccd2a7cbff8753cfec21d95912}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_angle\_get@{eina\_vector3\_angle\_get}}
\index{eina\_vector3\_angle\_get@{eina\_vector3\_angle\_get}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_angle\_get()}{eina\_vector3\_angle\_get()}}
{\footnotesize\ttfamily static double eina\+\_\+vector3\+\_\+angle\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{a,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{b }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Return the angle between of two vectors. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em a} & The first vector. \\
\hline
\mbox{\texttt{ in}}  & {\em b} & The second vector. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The angle.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_ga57fc76277d247b69c82dc0dfc7dd246b}\label{group__Eina__Vector3_ga57fc76277d247b69c82dc0dfc7dd246b}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_normalize@{eina\_vector3\_normalize}}
\index{eina\_vector3\_normalize@{eina\_vector3\_normalize}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_normalize()}{eina\_vector3\_normalize()}}
{\footnotesize\ttfamily static void eina\+\_\+vector3\+\_\+normalize (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



normalize vector. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The resulting vector. \\
\hline
\mbox{\texttt{ in}}  & {\em v} & The not NULL vector for normalize.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_ga348b423dc0ea20719b70219d00a49190}\label{group__Eina__Vector3_ga348b423dc0ea20719b70219d00a49190}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_transform@{eina\_vector3\_transform}}
\index{eina\_vector3\_transform@{eina\_vector3\_transform}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_transform()}{eina\_vector3\_transform()}}
{\footnotesize\ttfamily static void eina\+\_\+vector3\+\_\+transform (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{group__Eina__Matrix3__Group_ga8c3fb1203ec3bcfdcde63d76caedc375}{Eina\+\_\+\+Matrix3}} $\ast$}]{m,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Transform vector. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The resulting vector. \\
\hline
\mbox{\texttt{ in}}  & {\em m} & The matrix for transform. \\
\hline
\mbox{\texttt{ in}}  & {\em v} & The vector for transform.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_ga95eaa77ad1f490b4a3e88a045bc6547f}\label{group__Eina__Vector3_ga95eaa77ad1f490b4a3e88a045bc6547f}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_homogeneous\_direction\_transform@{eina\_vector3\_homogeneous\_direction\_transform}}
\index{eina\_vector3\_homogeneous\_direction\_transform@{eina\_vector3\_homogeneous\_direction\_transform}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_homogeneous\_direction\_transform()}{eina\_vector3\_homogeneous\_direction\_transform()}}
{\footnotesize\ttfamily static void eina\+\_\+vector3\+\_\+homogeneous\+\_\+direction\+\_\+transform (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{m,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Homogeneous direction transform vector. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The resulting vector. \\
\hline
\mbox{\texttt{ in}}  & {\em m} & The matrix for transform. \\
\hline
\mbox{\texttt{ in}}  & {\em v} & The vector for transform.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_ga72de1f40af4d381d3b88aea613fe5aa9}\label{group__Eina__Vector3_ga72de1f40af4d381d3b88aea613fe5aa9}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_homogeneous\_position\_transform@{eina\_vector3\_homogeneous\_position\_transform}}
\index{eina\_vector3\_homogeneous\_position\_transform@{eina\_vector3\_homogeneous\_position\_transform}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_homogeneous\_position\_transform()}{eina\_vector3\_homogeneous\_position\_transform()}}
{\footnotesize\ttfamily static void eina\+\_\+vector3\+\_\+homogeneous\+\_\+position\+\_\+transform (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{structEina__Matrix4}{Eina\+\_\+\+Matrix4}} $\ast$}]{m,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Homogeneous position transform vector. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The resulting vector. \\
\hline
\mbox{\texttt{ in}}  & {\em m} & The matrix for transform. \\
\hline
\mbox{\texttt{ in}}  & {\em v} & The vector for transform.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_ga756d44beffff650f1c52ebf862303903}\label{group__Eina__Vector3_ga756d44beffff650f1c52ebf862303903}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_quaternion\_rotate@{eina\_vector3\_quaternion\_rotate}}
\index{eina\_vector3\_quaternion\_rotate@{eina\_vector3\_quaternion\_rotate}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_quaternion\_rotate()}{eina\_vector3\_quaternion\_rotate()}}
{\footnotesize\ttfamily static void eina\+\_\+vector3\+\_\+quaternion\+\_\+rotate (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{v,  }\item[{const \mbox{\hyperlink{struct__Eina__Quaternion}{Eina\+\_\+\+Quaternion}} $\ast$}]{q }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Rotate vector. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The resulting vector. \\
\hline
\mbox{\texttt{ in}}  & {\em v} & The vector for rotate. \\
\hline
\mbox{\texttt{ in}}  & {\em q} & The quaternion in radians for rotate.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_ga1919fd74cea70f25cc465b65b83d8bfb}\label{group__Eina__Vector3_ga1919fd74cea70f25cc465b65b83d8bfb}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_orthogonal\_projection\_on\_plane@{eina\_vector3\_orthogonal\_projection\_on\_plane}}
\index{eina\_vector3\_orthogonal\_projection\_on\_plane@{eina\_vector3\_orthogonal\_projection\_on\_plane}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_orthogonal\_projection\_on\_plane()}{eina\_vector3\_orthogonal\_projection\_on\_plane()}}
{\footnotesize\ttfamily static void eina\+\_\+vector3\+\_\+orthogonal\+\_\+projection\+\_\+on\+\_\+plane (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{v,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{normal }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Create orthogonal projection on plane between vector and normal. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The resulting vector. \\
\hline
\mbox{\texttt{ in}}  & {\em v} & The vector for projection. \\
\hline
\mbox{\texttt{ in}}  & {\em normal} & The normal for projection.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_ga1ab390ffa096454788d07e3011ffe8fd}\label{group__Eina__Vector3_ga1ab390ffa096454788d07e3011ffe8fd}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_plane\_by\_points@{eina\_vector3\_plane\_by\_points}}
\index{eina\_vector3\_plane\_by\_points@{eina\_vector3\_plane\_by\_points}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_plane\_by\_points()}{eina\_vector3\_plane\_by\_points()}}
{\footnotesize\ttfamily static void eina\+\_\+vector3\+\_\+plane\+\_\+by\+\_\+points (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Quaternion}{Eina\+\_\+\+Quaternion}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{a,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{b,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{c }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Plane by points between three vectors. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The resulting quaternion of plane. \\
\hline
\mbox{\texttt{ in}}  & {\em a} & The first member. \\
\hline
\mbox{\texttt{ in}}  & {\em b} & The second member. \\
\hline
\mbox{\texttt{ in}}  & {\em c} & The third member.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_ga8261742aca0eb171a04c61db419d1361}\label{group__Eina__Vector3_ga8261742aca0eb171a04c61db419d1361}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_homogeneous\_position\_set@{eina\_vector3\_homogeneous\_position\_set}}
\index{eina\_vector3\_homogeneous\_position\_set@{eina\_vector3\_homogeneous\_position\_set}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_homogeneous\_position\_set()}{eina\_vector3\_homogeneous\_position\_set()}}
{\footnotesize\ttfamily static void eina\+\_\+vector3\+\_\+homogeneous\+\_\+position\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{struct__Eina__Quaternion}{Eina\+\_\+\+Quaternion}} $\ast$}]{v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Homogeneous position set. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The resulting vector. \\
\hline
\mbox{\texttt{ in}}  & {\em v} & The quaternion for position.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_gaca39dd23909943efce732b065c4b9618}\label{group__Eina__Vector3_gaca39dd23909943efce732b065c4b9618}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_homogeneous\_direction\_set@{eina\_vector3\_homogeneous\_direction\_set}}
\index{eina\_vector3\_homogeneous\_direction\_set@{eina\_vector3\_homogeneous\_direction\_set}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_homogeneous\_direction\_set()}{eina\_vector3\_homogeneous\_direction\_set()}}
{\footnotesize\ttfamily static void eina\+\_\+vector3\+\_\+homogeneous\+\_\+direction\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{struct__Eina__Quaternion}{Eina\+\_\+\+Quaternion}} $\ast$}]{v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Homogeneous direction set. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & The resulting vector. \\
\hline
\mbox{\texttt{ in}}  & {\em v} & The quaternion for direction.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_ga0242462095b98d60da4ddc936c7ecdc0}\label{group__Eina__Vector3_ga0242462095b98d60da4ddc936c7ecdc0}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_equivalent@{eina\_vector3\_equivalent}}
\index{eina\_vector3\_equivalent@{eina\_vector3\_equivalent}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_equivalent()}{eina\_vector3\_equivalent()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+vector3\+\_\+equivalent (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{a,  }\item[{const \mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{b }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Check the equivalent between of two vectors. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em a} & The first vector. \\
\hline
\mbox{\texttt{ in}}  & {\em b} & The second vector. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The EINA\+\_\+\+TRUE if equivalent.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Vector3_gab752eb269eda6b5f838c0120917b5309}\label{group__Eina__Vector3_gab752eb269eda6b5f838c0120917b5309}} 
\index{Floating point vectors in 3D@{Floating point vectors in 3D}!eina\_vector3\_triangle\_equivalent@{eina\_vector3\_triangle\_equivalent}}
\index{eina\_vector3\_triangle\_equivalent@{eina\_vector3\_triangle\_equivalent}!Floating point vectors in 3D@{Floating point vectors in 3D}}
\doxysubsubsection{\texorpdfstring{eina\_vector3\_triangle\_equivalent()}{eina\_vector3\_triangle\_equivalent()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+vector3\+\_\+triangle\+\_\+equivalent (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{v0,  }\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{v1,  }\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{v2,  }\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{w0,  }\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{w1,  }\item[{\mbox{\hyperlink{struct__Eina__Vector3}{Eina\+\_\+\+Vector3}} $\ast$}]{w2 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Check the equivalent between of two triangles of vectors. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em v0} & The first member of first triangle. \\
\hline
\mbox{\texttt{ in}}  & {\em v1} & The second member of first triangle. \\
\hline
\mbox{\texttt{ in}}  & {\em v2} & The third member of first triangle. \\
\hline
\mbox{\texttt{ in}}  & {\em w0} & The first member of second triangle. \\
\hline
\mbox{\texttt{ in}}  & {\em w1} & The second member of second triangle. \\
\hline
\mbox{\texttt{ in}}  & {\em w2} & The third member of second triangle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The EINA\+\_\+\+TRUE if equivalent.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
