\hypertarget{group__Evas__Canvas3D__Object}{}\section{Generic 3D Object Descriptions}
\label{group__Evas__Canvas3D__Object}\index{Generic 3\+D Object Descriptions@{Generic 3\+D Object Descriptions}}


Evas 3D object is a generic type of all evas 3D objects like scene, node, camera, light, mesh, texture and material.  


\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Evas__Canvas3D__Object_ga714b17c988dfc70c59fdb6e59418cd18}\label{group__Evas__Canvas3D__Object_ga714b17c988dfc70c59fdb6e59418cd18}} 
\#define \hyperlink{group__Evas__Canvas3D__Object_ga714b17c988dfc70c59fdb6e59418cd18}{E\+V\+A\+S\+\_\+\+C\+A\+N\+V\+A\+S3\+D\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+L\+I\+C\+K\+ED}~(\&(\+\_\+\+E\+V\+A\+S\+\_\+\+C\+A\+N\+V\+A\+S3\+D\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+L\+I\+C\+K\+ED))
\begin{DoxyCompactList}\small\item\em Clicked Event. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Evas__Canvas3D__Object_ga65efb763f54c068a31a703e371868b0f}\label{group__Evas__Canvas3D__Object_ga65efb763f54c068a31a703e371868b0f}} 
\#define \hyperlink{group__Evas__Canvas3D__Object_ga65efb763f54c068a31a703e371868b0f}{E\+V\+A\+S\+\_\+\+C\+A\+N\+V\+A\+S3\+D\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+O\+L\+L\+I\+S\+I\+ON}~(\&(\+\_\+\+E\+V\+A\+S\+\_\+\+C\+A\+N\+V\+A\+S3\+D\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+O\+L\+L\+I\+S\+I\+ON))
\begin{DoxyCompactList}\small\item\em Collision Event. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
E\+O\+A\+PI void \hyperlink{group__Evas__Canvas3D__Object_gabc1e0497af99c663c6fd5419ca418eeb}{evas\+\_\+canvas3d\+\_\+object\+\_\+update\+\_\+notify} (void)
\begin{DoxyCompactList}\small\item\em Pure virtual update\+\_\+notify function. \end{DoxyCompactList}\item 
E\+O\+A\+PI void \hyperlink{group__Evas__Canvas3D__Object_gad688c341b4511b501aba3e1ca5c4e1bb}{evas\+\_\+canvas3d\+\_\+object\+\_\+change\+\_\+notify} (Evas\+\_\+\+Canvas3\+D\+\_\+\+State state, Evas\+\_\+\+Canvas3\+D\+\_\+\+Object $\ast$ref)
\begin{DoxyCompactList}\small\item\em Pure virtual change\+\_\+notify function. \end{DoxyCompactList}\item 
E\+O\+A\+PI void \hyperlink{group__Evas__Canvas3D__Object_ga86a349db52ce8a60966b5cd1c725da59}{evas\+\_\+canvas3d\+\_\+object\+\_\+callback\+\_\+register} (const char $\ast$event, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Pure virtual register samrt callback function. \end{DoxyCompactList}\item 
E\+O\+A\+PI void \hyperlink{group__Evas__Canvas3D__Object_gad94cb992918e47323299364053923cea}{evas\+\_\+canvas3d\+\_\+object\+\_\+callback\+\_\+unregister} (const char $\ast$event)
\begin{DoxyCompactList}\small\item\em Pure virtual unregister smart callback function. \end{DoxyCompactList}\item 
E\+O\+A\+PI void \hyperlink{group__Evas__Canvas3D__Object_gae67a2af01efe28bf5a8f29e5cdcee92e}{evas\+\_\+canvas3d\+\_\+object\+\_\+change} (Evas\+\_\+\+Canvas3\+D\+\_\+\+State state, Evas\+\_\+\+Canvas3\+D\+\_\+\+Object $\ast$ref)
\begin{DoxyCompactList}\small\item\em Notify the object regarding its state change. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Evas__Canvas3D__Object_gae2e171e4474d631c9674451c7ae39154}\label{group__Evas__Canvas3D__Object_gae2e171e4474d631c9674451c7ae39154}} 
E\+O\+A\+PI Evas\+\_\+\+Canvas3\+D\+\_\+\+Object\+\_\+\+Type \hyperlink{group__Evas__Canvas3D__Object_gae2e171e4474d631c9674451c7ae39154}{evas\+\_\+canvas3d\+\_\+object\+\_\+type\+\_\+get} (void)
\begin{DoxyCompactList}\small\item\em Returns the type of the object. \end{DoxyCompactList}\item 
E\+O\+A\+PI void \hyperlink{group__Evas__Canvas3D__Object_ga7f6f679a8939d2ed4b6987ca418f0a70}{evas\+\_\+canvas3d\+\_\+object\+\_\+type\+\_\+set} (Evas\+\_\+\+Canvas3\+D\+\_\+\+Object\+\_\+\+Type type)
\begin{DoxyCompactList}\small\item\em Returns the type of the object. \end{DoxyCompactList}\item 
E\+O\+A\+PI \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Evas__Canvas3D__Object_ga6f5bf37800702ca03e7871f70c9ea8d4}{evas\+\_\+canvas3d\+\_\+object\+\_\+dirty\+\_\+get} (Evas\+\_\+\+Canvas3\+D\+\_\+\+State state)
\begin{DoxyCompactList}\small\item\em Returns the status of a particular state of the object. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Evas__Canvas3D__Object_ga3d0e7c80f8d90a10e248bd7c64214005}\label{group__Evas__Canvas3D__Object_ga3d0e7c80f8d90a10e248bd7c64214005}} 
E\+O\+A\+PI void \hyperlink{group__Evas__Canvas3D__Object_ga3d0e7c80f8d90a10e248bd7c64214005}{evas\+\_\+canvas3d\+\_\+object\+\_\+update} (void)
\begin{DoxyCompactList}\small\item\em Update request for the object. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Evas 3D object is a generic type of all evas 3D objects like scene, node, camera, light, mesh, texture and material. 

Evas 3D object is basically reference counted. Any successful function call on an object which make a reference to an another object will increase the reference count. When the reference count gets to 0, the object will be actually deleted.

Any modifications are automatically propagated to other objects referencing the modified objects. As a result, if the scene object is set to modified state, all image objects having the scene as a rendering source are marked as dirty, so that rendering will be updated at next frame. But all these things are done internally, so feel free to forget about calling some kind of update functions. 

\subsection{Function Documentation}
\mbox{\Hypertarget{group__Evas__Canvas3D__Object_gabc1e0497af99c663c6fd5419ca418eeb}\label{group__Evas__Canvas3D__Object_gabc1e0497af99c663c6fd5419ca418eeb}} 
\index{Generic 3\+D Object Descriptions@{Generic 3\+D Object Descriptions}!evas\+\_\+canvas3d\+\_\+object\+\_\+update\+\_\+notify@{evas\+\_\+canvas3d\+\_\+object\+\_\+update\+\_\+notify}}
\index{evas\+\_\+canvas3d\+\_\+object\+\_\+update\+\_\+notify@{evas\+\_\+canvas3d\+\_\+object\+\_\+update\+\_\+notify}!Generic 3\+D Object Descriptions@{Generic 3\+D Object Descriptions}}
\subsubsection{\texorpdfstring{evas\+\_\+canvas3d\+\_\+object\+\_\+update\+\_\+notify()}{evas\_canvas3d\_object\_update\_notify()}}
{\footnotesize\ttfamily E\+O\+A\+PI void evas\+\_\+canvas3d\+\_\+object\+\_\+update\+\_\+notify (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Pure virtual update\+\_\+notify function. 

Update request for the object. \mbox{\Hypertarget{group__Evas__Canvas3D__Object_gad688c341b4511b501aba3e1ca5c4e1bb}\label{group__Evas__Canvas3D__Object_gad688c341b4511b501aba3e1ca5c4e1bb}} 
\index{Generic 3\+D Object Descriptions@{Generic 3\+D Object Descriptions}!evas\+\_\+canvas3d\+\_\+object\+\_\+change\+\_\+notify@{evas\+\_\+canvas3d\+\_\+object\+\_\+change\+\_\+notify}}
\index{evas\+\_\+canvas3d\+\_\+object\+\_\+change\+\_\+notify@{evas\+\_\+canvas3d\+\_\+object\+\_\+change\+\_\+notify}!Generic 3\+D Object Descriptions@{Generic 3\+D Object Descriptions}}
\subsubsection{\texorpdfstring{evas\+\_\+canvas3d\+\_\+object\+\_\+change\+\_\+notify()}{evas\_canvas3d\_object\_change\_notify()}}
{\footnotesize\ttfamily E\+O\+A\+PI void evas\+\_\+canvas3d\+\_\+object\+\_\+change\+\_\+notify (\begin{DoxyParamCaption}\item[{Evas\+\_\+\+Canvas3\+D\+\_\+\+State}]{state,  }\item[{Evas\+\_\+\+Canvas3\+D\+\_\+\+Object $\ast$}]{ref }\end{DoxyParamCaption})}



Pure virtual change\+\_\+notify function. 

Update request for the object.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em ref} & The Object that caused the change. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Evas__Canvas3D__Object_ga86a349db52ce8a60966b5cd1c725da59}\label{group__Evas__Canvas3D__Object_ga86a349db52ce8a60966b5cd1c725da59}} 
\index{Generic 3\+D Object Descriptions@{Generic 3\+D Object Descriptions}!evas\+\_\+canvas3d\+\_\+object\+\_\+callback\+\_\+register@{evas\+\_\+canvas3d\+\_\+object\+\_\+callback\+\_\+register}}
\index{evas\+\_\+canvas3d\+\_\+object\+\_\+callback\+\_\+register@{evas\+\_\+canvas3d\+\_\+object\+\_\+callback\+\_\+register}!Generic 3\+D Object Descriptions@{Generic 3\+D Object Descriptions}}
\subsubsection{\texorpdfstring{evas\+\_\+canvas3d\+\_\+object\+\_\+callback\+\_\+register()}{evas\_canvas3d\_object\_callback\_register()}}
{\footnotesize\ttfamily E\+O\+A\+PI void evas\+\_\+canvas3d\+\_\+object\+\_\+callback\+\_\+register (\begin{DoxyParamCaption}\item[{const char $\ast$}]{event,  }\item[{const void $\ast$}]{data }\end{DoxyParamCaption})}



Pure virtual register samrt callback function. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em data} & User data. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Evas__Canvas3D__Object_gad94cb992918e47323299364053923cea}\label{group__Evas__Canvas3D__Object_gad94cb992918e47323299364053923cea}} 
\index{Generic 3\+D Object Descriptions@{Generic 3\+D Object Descriptions}!evas\+\_\+canvas3d\+\_\+object\+\_\+callback\+\_\+unregister@{evas\+\_\+canvas3d\+\_\+object\+\_\+callback\+\_\+unregister}}
\index{evas\+\_\+canvas3d\+\_\+object\+\_\+callback\+\_\+unregister@{evas\+\_\+canvas3d\+\_\+object\+\_\+callback\+\_\+unregister}!Generic 3\+D Object Descriptions@{Generic 3\+D Object Descriptions}}
\subsubsection{\texorpdfstring{evas\+\_\+canvas3d\+\_\+object\+\_\+callback\+\_\+unregister()}{evas\_canvas3d\_object\_callback\_unregister()}}
{\footnotesize\ttfamily E\+O\+A\+PI void evas\+\_\+canvas3d\+\_\+object\+\_\+callback\+\_\+unregister (\begin{DoxyParamCaption}\item[{const char $\ast$}]{event }\end{DoxyParamCaption})}



Pure virtual unregister smart callback function. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em event} & Event type. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Evas__Canvas3D__Object_gae67a2af01efe28bf5a8f29e5cdcee92e}\label{group__Evas__Canvas3D__Object_gae67a2af01efe28bf5a8f29e5cdcee92e}} 
\index{Generic 3\+D Object Descriptions@{Generic 3\+D Object Descriptions}!evas\+\_\+canvas3d\+\_\+object\+\_\+change@{evas\+\_\+canvas3d\+\_\+object\+\_\+change}}
\index{evas\+\_\+canvas3d\+\_\+object\+\_\+change@{evas\+\_\+canvas3d\+\_\+object\+\_\+change}!Generic 3\+D Object Descriptions@{Generic 3\+D Object Descriptions}}
\subsubsection{\texorpdfstring{evas\+\_\+canvas3d\+\_\+object\+\_\+change()}{evas\_canvas3d\_object\_change()}}
{\footnotesize\ttfamily E\+O\+A\+PI void evas\+\_\+canvas3d\+\_\+object\+\_\+change (\begin{DoxyParamCaption}\item[{Evas\+\_\+\+Canvas3\+D\+\_\+\+State}]{state,  }\item[{Evas\+\_\+\+Canvas3\+D\+\_\+\+Object $\ast$}]{ref }\end{DoxyParamCaption})}



Notify the object regarding its state change. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em ref} & The Object that caused the change. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Evas__Canvas3D__Object_ga7f6f679a8939d2ed4b6987ca418f0a70}\label{group__Evas__Canvas3D__Object_ga7f6f679a8939d2ed4b6987ca418f0a70}} 
\index{Generic 3\+D Object Descriptions@{Generic 3\+D Object Descriptions}!evas\+\_\+canvas3d\+\_\+object\+\_\+type\+\_\+set@{evas\+\_\+canvas3d\+\_\+object\+\_\+type\+\_\+set}}
\index{evas\+\_\+canvas3d\+\_\+object\+\_\+type\+\_\+set@{evas\+\_\+canvas3d\+\_\+object\+\_\+type\+\_\+set}!Generic 3\+D Object Descriptions@{Generic 3\+D Object Descriptions}}
\subsubsection{\texorpdfstring{evas\+\_\+canvas3d\+\_\+object\+\_\+type\+\_\+set()}{evas\_canvas3d\_object\_type\_set()}}
{\footnotesize\ttfamily E\+O\+A\+PI void evas\+\_\+canvas3d\+\_\+object\+\_\+type\+\_\+set (\begin{DoxyParamCaption}\item[{Evas\+\_\+\+Canvas3\+D\+\_\+\+Object\+\_\+\+Type}]{type }\end{DoxyParamCaption})}



Returns the type of the object. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em type} & \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Evas__Canvas3D__Object_ga6f5bf37800702ca03e7871f70c9ea8d4}\label{group__Evas__Canvas3D__Object_ga6f5bf37800702ca03e7871f70c9ea8d4}} 
\index{Generic 3\+D Object Descriptions@{Generic 3\+D Object Descriptions}!evas\+\_\+canvas3d\+\_\+object\+\_\+dirty\+\_\+get@{evas\+\_\+canvas3d\+\_\+object\+\_\+dirty\+\_\+get}}
\index{evas\+\_\+canvas3d\+\_\+object\+\_\+dirty\+\_\+get@{evas\+\_\+canvas3d\+\_\+object\+\_\+dirty\+\_\+get}!Generic 3\+D Object Descriptions@{Generic 3\+D Object Descriptions}}
\subsubsection{\texorpdfstring{evas\+\_\+canvas3d\+\_\+object\+\_\+dirty\+\_\+get()}{evas\_canvas3d\_object\_dirty\_get()}}
{\footnotesize\ttfamily E\+O\+A\+PI \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} evas\+\_\+canvas3d\+\_\+object\+\_\+dirty\+\_\+get (\begin{DoxyParamCaption}\item[{Evas\+\_\+\+Canvas3\+D\+\_\+\+State}]{state }\end{DoxyParamCaption})}



Returns the status of a particular state of the object. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em state} & State whose status is being asked. \\
\hline
\end{DoxyParams}
