\hypertarget{group__Evas__Canvas3D__Camera}{}\doxysection{Camera Object}
\label{group__Evas__Canvas3D__Camera}\index{Camera Object@{Camera Object}}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Evas__Canvas3D__Camera_ga57d64b3de4d49bc68087ee3565ac8566}\label{group__Evas__Canvas3D__Camera_ga57d64b3de4d49bc68087ee3565ac8566}} 
\#define \mbox{\hyperlink{group__Evas__Canvas3D__Camera_ga57d64b3de4d49bc68087ee3565ac8566}{E\+V\+A\+S\+\_\+\+C\+A\+N\+V\+A\+S3\+D\+\_\+\+C\+A\+M\+E\+R\+A\+\_\+\+C\+L\+A\+SS}}~evas\+\_\+canvas3d\+\_\+camera\+\_\+class\+\_\+get()
\begin{DoxyCompactList}\small\item\em Evas 3D canvas camera class. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
E\+O\+A\+PI void \mbox{\hyperlink{group__Evas__Canvas3D__Camera_ga4456be2631055aad7f36300aa3f16176}{evas\+\_\+canvas3d\+\_\+camera\+\_\+projection\+\_\+matrix\+\_\+set}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const \mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}} $\ast$matrix)
\begin{DoxyCompactList}\small\item\em Set the projection matrix of the given camera. \end{DoxyCompactList}\item 
E\+O\+A\+PI void \mbox{\hyperlink{group__Evas__Canvas3D__Camera_ga9613d1821c8c4defc98785f01ed9e626}{evas\+\_\+canvas3d\+\_\+camera\+\_\+projection\+\_\+matrix\+\_\+get}} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, \mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}} $\ast$matrix)
\begin{DoxyCompactList}\small\item\em Get the projection matrix of the given camera. \end{DoxyCompactList}\item 
E\+O\+A\+PI void \mbox{\hyperlink{group__Evas__Canvas3D__Camera_ga5027c6be4dc48861aa4d44b0e1c8eb76}{evas\+\_\+canvas3d\+\_\+camera\+\_\+projection\+\_\+perspective\+\_\+set}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, \mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}} fovy, \mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}} aspect, \mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}} dnear, \mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}} dfar)
\begin{DoxyCompactList}\small\item\em Set the projection matrix of the given camera with perspective projection. \end{DoxyCompactList}\item 
E\+O\+A\+PI void \mbox{\hyperlink{group__Evas__Canvas3D__Camera_ga5c4088ccec656cfde00a912d23818722}{evas\+\_\+canvas3d\+\_\+camera\+\_\+projection\+\_\+frustum\+\_\+set}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, \mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}} left, \mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}} right, \mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}} bottom, \mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}} top, \mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}} dnear, \mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}} dfar)
\begin{DoxyCompactList}\small\item\em Set the projection matrix of the given camera with frustum projection. \end{DoxyCompactList}\item 
E\+O\+A\+PI void \mbox{\hyperlink{group__Evas__Canvas3D__Camera_ga70541fcd3dc6cd205f8a9543abf2b5f0}{evas\+\_\+canvas3d\+\_\+camera\+\_\+projection\+\_\+ortho\+\_\+set}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, \mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}} left, \mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}} right, \mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}} bottom, \mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}} top, \mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}} dnear, \mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}} dfar)
\begin{DoxyCompactList}\small\item\em Set the projection matrix of the given camera with orthogonal projection. \end{DoxyCompactList}\item 
E\+O\+A\+PI \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Evas__Canvas3D__Camera_ga843a72988369c1b8cb4c1c7cf623efd3}{evas\+\_\+canvas3d\+\_\+camera\+\_\+node\+\_\+visible\+\_\+get}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, Evas\+\_\+\+Canvas3\+D\+\_\+\+Node $\ast$camera\+\_\+node, Evas\+\_\+\+Canvas3\+D\+\_\+\+Node $\ast$node, Evas\+\_\+\+Canvas3\+D\+\_\+\+Frustum\+\_\+\+Mode key)
\begin{DoxyCompactList}\small\item\em Check is bounding sphere of given node inside frustum of camera node. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
The Evas\+\_\+\+Canvas3\+D\+\_\+\+Camera structure defines properties used to generate 2D pictures of a given scene graph, similar in concept to focus length and film size for a real world camera.

A given camera definition can be used to take multiple pictures of the scene by establishing multiple nodes for the Evas\+\_\+\+Canvas3\+D\+\_\+\+Camera, each of which are located at different positions and with different orientations. Convenience routines \mbox{\hyperlink{group__Evas__Canvas3D__Node_ga34226725e6f77397123da2fd927f8dca}{evas\+\_\+canvas3d\+\_\+node\+\_\+position\+\_\+set()}} and \mbox{\hyperlink{group__Evas__Canvas3D__Node_ga8ae46000ed15a96a2b1fb6c8001cc890}{evas\+\_\+canvas3d\+\_\+node\+\_\+look\+\_\+at\+\_\+set()}} are provided to adjust the position and viewing direction for these nodes. 

\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__Evas__Canvas3D__Camera_ga4456be2631055aad7f36300aa3f16176}\label{group__Evas__Canvas3D__Camera_ga4456be2631055aad7f36300aa3f16176}} 
\index{Camera Object@{Camera Object}!evas\_canvas3d\_camera\_projection\_matrix\_set@{evas\_canvas3d\_camera\_projection\_matrix\_set}}
\index{evas\_canvas3d\_camera\_projection\_matrix\_set@{evas\_canvas3d\_camera\_projection\_matrix\_set}!Camera Object@{Camera Object}}
\doxysubsubsection{\texorpdfstring{evas\_canvas3d\_camera\_projection\_matrix\_set()}{evas\_canvas3d\_camera\_projection\_matrix\_set()}}
{\footnotesize\ttfamily E\+O\+A\+PI void evas\+\_\+canvas3d\+\_\+camera\+\_\+projection\+\_\+matrix\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const \mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}} $\ast$}]{matrix }\end{DoxyParamCaption})}



Set the projection matrix of the given camera. 

Default projection matrix is identity matrix.

See also \mbox{\hyperlink{group__Evas__Canvas3D__Camera_ga5027c6be4dc48861aa4d44b0e1c8eb76}{evas\+\_\+canvas3d\+\_\+camera\+\_\+projection\+\_\+perspective\+\_\+set}}, \mbox{\hyperlink{group__Evas__Canvas3D__Camera_ga70541fcd3dc6cd205f8a9543abf2b5f0}{evas\+\_\+canvas3d\+\_\+camera\+\_\+projection\+\_\+ortho\+\_\+set}} and \mbox{\hyperlink{group__Evas__Canvas3D__Camera_ga5c4088ccec656cfde00a912d23818722}{evas\+\_\+canvas3d\+\_\+camera\+\_\+projection\+\_\+frustum\+\_\+set}}.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em obj} & The object. \\
\hline
\mbox{\texttt{ in}}  & {\em matrix} & Projection Matrix \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Evas__Canvas3D__Camera_ga9613d1821c8c4defc98785f01ed9e626}\label{group__Evas__Canvas3D__Camera_ga9613d1821c8c4defc98785f01ed9e626}} 
\index{Camera Object@{Camera Object}!evas\_canvas3d\_camera\_projection\_matrix\_get@{evas\_canvas3d\_camera\_projection\_matrix\_get}}
\index{evas\_canvas3d\_camera\_projection\_matrix\_get@{evas\_canvas3d\_camera\_projection\_matrix\_get}!Camera Object@{Camera Object}}
\doxysubsubsection{\texorpdfstring{evas\_canvas3d\_camera\_projection\_matrix\_get()}{evas\_canvas3d\_camera\_projection\_matrix\_get()}}
{\footnotesize\ttfamily E\+O\+A\+PI void evas\+\_\+canvas3d\+\_\+camera\+\_\+projection\+\_\+matrix\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{\mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}} $\ast$}]{matrix }\end{DoxyParamCaption})}



Get the projection matrix of the given camera. 

See also \mbox{\hyperlink{group__Evas__Canvas3D__Camera_ga4456be2631055aad7f36300aa3f16176}{evas\+\_\+canvas3d\+\_\+camera\+\_\+projection\+\_\+matrix\+\_\+set}}.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em obj} & The object. \\
\hline
\mbox{\texttt{ out}}  & {\em matrix} & Projection Matrix \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Evas__Canvas3D__Camera_ga5027c6be4dc48861aa4d44b0e1c8eb76}\label{group__Evas__Canvas3D__Camera_ga5027c6be4dc48861aa4d44b0e1c8eb76}} 
\index{Camera Object@{Camera Object}!evas\_canvas3d\_camera\_projection\_perspective\_set@{evas\_canvas3d\_camera\_projection\_perspective\_set}}
\index{evas\_canvas3d\_camera\_projection\_perspective\_set@{evas\_canvas3d\_camera\_projection\_perspective\_set}!Camera Object@{Camera Object}}
\doxysubsubsection{\texorpdfstring{evas\_canvas3d\_camera\_projection\_perspective\_set()}{evas\_canvas3d\_camera\_projection\_perspective\_set()}}
{\footnotesize\ttfamily E\+O\+A\+PI void evas\+\_\+canvas3d\+\_\+camera\+\_\+projection\+\_\+perspective\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{\mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}}}]{fovy,  }\item[{\mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}}}]{aspect,  }\item[{\mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}}}]{dnear,  }\item[{\mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}}}]{dfar }\end{DoxyParamCaption})}



Set the projection matrix of the given camera with perspective projection. 

See also \mbox{\hyperlink{group__Evas__Canvas3D__Camera_ga4456be2631055aad7f36300aa3f16176}{evas\+\_\+canvas3d\+\_\+camera\+\_\+projection\+\_\+matrix\+\_\+set}}.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em obj} & The object. \\
\hline
\mbox{\texttt{ in}}  & {\em fovy} & Field of view angle in Y direction. \\
\hline
\mbox{\texttt{ in}}  & {\em aspect} & Aspect ratio. \\
\hline
\mbox{\texttt{ in}}  & {\em dnear} & Distance to near clipping plane. \\
\hline
\mbox{\texttt{ in}}  & {\em dfar} & Distance to far clipping plane. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Evas__Canvas3D__Camera_ga5c4088ccec656cfde00a912d23818722}\label{group__Evas__Canvas3D__Camera_ga5c4088ccec656cfde00a912d23818722}} 
\index{Camera Object@{Camera Object}!evas\_canvas3d\_camera\_projection\_frustum\_set@{evas\_canvas3d\_camera\_projection\_frustum\_set}}
\index{evas\_canvas3d\_camera\_projection\_frustum\_set@{evas\_canvas3d\_camera\_projection\_frustum\_set}!Camera Object@{Camera Object}}
\doxysubsubsection{\texorpdfstring{evas\_canvas3d\_camera\_projection\_frustum\_set()}{evas\_canvas3d\_camera\_projection\_frustum\_set()}}
{\footnotesize\ttfamily E\+O\+A\+PI void evas\+\_\+canvas3d\+\_\+camera\+\_\+projection\+\_\+frustum\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{\mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}}}]{left,  }\item[{\mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}}}]{right,  }\item[{\mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}}}]{bottom,  }\item[{\mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}}}]{top,  }\item[{\mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}}}]{dnear,  }\item[{\mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}}}]{dfar }\end{DoxyParamCaption})}



Set the projection matrix of the given camera with frustum projection. 

See also \mbox{\hyperlink{group__Evas__Canvas3D__Camera_ga4456be2631055aad7f36300aa3f16176}{evas\+\_\+canvas3d\+\_\+camera\+\_\+projection\+\_\+matrix\+\_\+set}}.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em obj} & The object. \\
\hline
\mbox{\texttt{ in}}  & {\em left} & Left X coordinate of the near clipping plane. \\
\hline
\mbox{\texttt{ in}}  & {\em right} & Right X coordinate of the near clipping plane.. \\
\hline
\mbox{\texttt{ in}}  & {\em bottom} & Bottom Y coordinate of the near clipping plane. \\
\hline
\mbox{\texttt{ in}}  & {\em top} & Top Y coordinate of the near clipping plane \\
\hline
\mbox{\texttt{ in}}  & {\em dnear} & Distance to near clipping plane. \\
\hline
\mbox{\texttt{ in}}  & {\em dfar} & Distance to far clipping plane. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Evas__Canvas3D__Camera_ga70541fcd3dc6cd205f8a9543abf2b5f0}\label{group__Evas__Canvas3D__Camera_ga70541fcd3dc6cd205f8a9543abf2b5f0}} 
\index{Camera Object@{Camera Object}!evas\_canvas3d\_camera\_projection\_ortho\_set@{evas\_canvas3d\_camera\_projection\_ortho\_set}}
\index{evas\_canvas3d\_camera\_projection\_ortho\_set@{evas\_canvas3d\_camera\_projection\_ortho\_set}!Camera Object@{Camera Object}}
\doxysubsubsection{\texorpdfstring{evas\_canvas3d\_camera\_projection\_ortho\_set()}{evas\_canvas3d\_camera\_projection\_ortho\_set()}}
{\footnotesize\ttfamily E\+O\+A\+PI void evas\+\_\+canvas3d\+\_\+camera\+\_\+projection\+\_\+ortho\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{\mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}}}]{left,  }\item[{\mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}}}]{right,  }\item[{\mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}}}]{bottom,  }\item[{\mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}}}]{top,  }\item[{\mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}}}]{dnear,  }\item[{\mbox{\hyperlink{group__Evas_gafe9cc74872ef141d258c2162fa0ce5ca}{Evas\+\_\+\+Real}}}]{dfar }\end{DoxyParamCaption})}



Set the projection matrix of the given camera with orthogonal projection. 

See also \mbox{\hyperlink{group__Evas__Canvas3D__Camera_ga4456be2631055aad7f36300aa3f16176}{evas\+\_\+canvas3d\+\_\+camera\+\_\+projection\+\_\+matrix\+\_\+set}}.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em obj} & The object. \\
\hline
\mbox{\texttt{ in}}  & {\em left} & Left X coordinate of the near clipping plane. \\
\hline
\mbox{\texttt{ in}}  & {\em right} & Right X coordinate of the near clipping plane.. \\
\hline
\mbox{\texttt{ in}}  & {\em bottom} & Bottom Y coordinate of the near clipping plane. \\
\hline
\mbox{\texttt{ in}}  & {\em top} & Top Y coordinate of the near clipping plane \\
\hline
\mbox{\texttt{ in}}  & {\em dnear} & Distance to near clipping plane. \\
\hline
\mbox{\texttt{ in}}  & {\em dfar} & Distance to far clipping plane. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Evas__Canvas3D__Camera_ga843a72988369c1b8cb4c1c7cf623efd3}\label{group__Evas__Canvas3D__Camera_ga843a72988369c1b8cb4c1c7cf623efd3}} 
\index{Camera Object@{Camera Object}!evas\_canvas3d\_camera\_node\_visible\_get@{evas\_canvas3d\_camera\_node\_visible\_get}}
\index{evas\_canvas3d\_camera\_node\_visible\_get@{evas\_canvas3d\_camera\_node\_visible\_get}!Camera Object@{Camera Object}}
\doxysubsubsection{\texorpdfstring{evas\_canvas3d\_camera\_node\_visible\_get()}{evas\_canvas3d\_camera\_node\_visible\_get()}}
{\footnotesize\ttfamily E\+O\+A\+PI \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} evas\+\_\+canvas3d\+\_\+camera\+\_\+node\+\_\+visible\+\_\+get (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{Evas\+\_\+\+Canvas3\+D\+\_\+\+Node $\ast$}]{camera\+\_\+node,  }\item[{Evas\+\_\+\+Canvas3\+D\+\_\+\+Node $\ast$}]{node,  }\item[{Evas\+\_\+\+Canvas3\+D\+\_\+\+Frustum\+\_\+\+Mode}]{key }\end{DoxyParamCaption})}



Check is bounding sphere of given node inside frustum of camera node. 

If the nodes are {\ttfamily null} or nodes type mismatch error wrong type of nodes will be generated and returned {\ttfamily false}.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em obj} & The object. \\
\hline
\mbox{\texttt{ in}}  & {\em camera\+\_\+node} & The given camera node. \\
\hline
\mbox{\texttt{ in}}  & {\em node} & The given node. \\
\hline
\mbox{\texttt{ in}}  & {\em key} & The given key\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily true} in frustum, {\ttfamily false} otherwise 
\end{DoxyReturn}
