\hypertarget{a01357}{\section{Type\+Interface Class Reference}
\label{a01357}\index{Type\+Interface@{Type\+Interface}}
}


Interface class for type definitions.  




{\ttfamily \#include $<$Open\+Flipper/\+Base\+Plugin/\+Type\+Interface.\+hh$>$}

Inheritance diagram for Type\+Interface\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=12.000000cm]{a01357}
\end{center}
\end{figure}
\subsection*{Public Slots}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01357_a1b445dfe8498d5ef73ab5e7d09a480f4}{virtual bool {\bfseries register\+Type} ()=0}\label{a01357_a1b445dfe8498d5ef73ab5e7d09a480f4}

\item 
virtual int \hyperlink{a01357_a50b2bfa5db5ff3ce6f3e8cc8e40260f0}{add\+Empty} ()=0
\begin{DoxyCompactList}\small\item\em Create an empty object. \end{DoxyCompactList}\item 
virtual \hyperlink{a00477}{Data\+Type} \hyperlink{a01357_a05736f72d3220fbd4152e902b0fa7756}{supported\+Type} ()=0
\begin{DoxyCompactList}\small\item\em Return your supported object type( e.\+g. D\+A\+T\+A\+\_\+\+T\+R\+I\+A\+N\+G\+L\+E\+\_\+\+M\+E\+S\+H ) \end{DoxyCompactList}\item 
virtual void \hyperlink{a01357_a93656bd18b755dcaa2eb9ad953e4a516}{generate\+Backup} (int \+\_\+id, Q\+String \+\_\+name, \hyperlink{a01393}{Update\+Type} \+\_\+type)
\begin{DoxyCompactList}\small\item\em This slot should be implemented in a Type\+Plugin to generate type specific backups. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Signals}
\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{a01357_a09129158fb236ba0e8cda73b5c8b566e}{empty\+Object\+Added} (int \+\_\+id)
\begin{DoxyCompactList}\small\item\em Emit this signal if an empty object has been created. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01357_a5e8063e8d5c9294a59e2f060460e6413}{virtual \hyperlink{a01357_a5e8063e8d5c9294a59e2f060460e6413}{$\sim$\+Type\+Interface} ()}\label{a01357_a5e8063e8d5c9294a59e2f060460e6413}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Interface class for type definitions. 

~\newline
\hyperlink{typeInterfacePage}{Detailed description} ~\newline
 This interface is used to register new types in Open\+Flipper. The type plugins are loaded before all other plugins. They have only the register\+Type function which registers the type to the core and a function to add new objects at runtime. 

Definition at line 73 of file Type\+Interface.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a01357_a50b2bfa5db5ff3ce6f3e8cc8e40260f0}{\index{Type\+Interface@{Type\+Interface}!add\+Empty@{add\+Empty}}
\index{add\+Empty@{add\+Empty}!Type\+Interface@{Type\+Interface}}
\subsubsection[{add\+Empty}]{\setlength{\rightskip}{0pt plus 5cm}virtual int Type\+Interface\+::add\+Empty (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [pure virtual]}, {\ttfamily [slot]}}}\label{a01357_a50b2bfa5db5ff3ce6f3e8cc8e40260f0}


Create an empty object. 

When this slot is called you have to create an object of your supported type. \begin{DoxyReturn}{Returns}
Id of the new Object 
\end{DoxyReturn}


Implemented in \hyperlink{a01358_a68df1f138415cbd60f842bb707d219c2}{Type\+Light\+Plugin}, \hyperlink{a01348_a0f755702eb3125f050d61050d6650f91}{Type\+B\+Spline\+Curve\+Plugin}, \hyperlink{a01349_ab18de417f45ff0437ccd01e66730ac8a}{Type\+B\+Spline\+Surface\+Plugin}, \hyperlink{a01368_a0c3faa8394d0d24be912fc1175643970}{Type\+Skeleton\+Plugin}, \hyperlink{a01350_afd907fda4a425bac4bd4c75812efabef}{Type\+Camera\+Plugin}, \hyperlink{a01370_a8367cbd8058101b4991f2fd4a20ea0b8}{Type\+Splat\+Cloud\+Plugin}, \hyperlink{a01365_a57c00caf3624fe837de8cd90fc564c21}{Type\+Poly\+Mesh\+Plugin}, \hyperlink{a01366_a2ea59d7607a8533e98321e50444bd731}{Type\+Qt\+Widget\+Plugin}, \hyperlink{a01372_a50d57fb90c65c5df50a13247ecacddbc}{Type\+Triangle\+Mesh\+Plugin}, \hyperlink{a01362_ac42ac87d0087989c8ced804bb289fb83}{Type\+Plane\+Plugin}, \hyperlink{a01369_a7c10ec0d51f3c9c312e199a38fdd93bd}{Type\+Sphere\+Plugin}, \hyperlink{a01351_ae3320e8632f5e5c31a255765b6c1f240}{Type\+Coordsys\+Plugin}, and \hyperlink{a01364_a327c898a9ffc60fcef5cf563f72b16c3}{Type\+Poly\+Line\+Plugin}.

\hypertarget{a01357_a09129158fb236ba0e8cda73b5c8b566e}{\index{Type\+Interface@{Type\+Interface}!empty\+Object\+Added@{empty\+Object\+Added}}
\index{empty\+Object\+Added@{empty\+Object\+Added}!Type\+Interface@{Type\+Interface}}
\subsubsection[{empty\+Object\+Added}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Type\+Interface\+::empty\+Object\+Added (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [signal]}}}\label{a01357_a09129158fb236ba0e8cda73b5c8b566e}


Emit this signal if an empty object has been created. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+id} & Id of the added object \\
\hline
\end{DoxyParams}


Definition at line 81 of file Type\+Interface.\+hh.

\hypertarget{a01357_a93656bd18b755dcaa2eb9ad953e4a516}{\index{Type\+Interface@{Type\+Interface}!generate\+Backup@{generate\+Backup}}
\index{generate\+Backup@{generate\+Backup}!Type\+Interface@{Type\+Interface}}
\subsubsection[{generate\+Backup}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Type\+Interface\+::generate\+Backup (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+id, }
\item[{Q\+String}]{\+\_\+name, }
\item[{{\bf Update\+Type}}]{\+\_\+type}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [slot]}}}\label{a01357_a93656bd18b755dcaa2eb9ad953e4a516}


This slot should be implemented in a Type\+Plugin to generate type specific backups. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+id} & Id of the added object \\
\hline
{\em \+\_\+name} & name of the backup \\
\hline
{\em \+\_\+type} & the type of backup that needs to be done \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{a01368_a57e52841f03a8bd00302259abb85ce9c}{Type\+Skeleton\+Plugin}, \hyperlink{a01370_abb5fd010bcc7bfe474cdb4425bfcbfd0}{Type\+Splat\+Cloud\+Plugin}, \hyperlink{a01365_ad19895dd975b28df700f3dad3b9e0518}{Type\+Poly\+Mesh\+Plugin}, and \hyperlink{a01372_a1fc7e5f0c7f4218f06984be93c2185a2}{Type\+Triangle\+Mesh\+Plugin}.



Definition at line 112 of file Type\+Interface.\+hh.

\hypertarget{a01357_a05736f72d3220fbd4152e902b0fa7756}{\index{Type\+Interface@{Type\+Interface}!supported\+Type@{supported\+Type}}
\index{supported\+Type@{supported\+Type}!Type\+Interface@{Type\+Interface}}
\subsubsection[{supported\+Type}]{\setlength{\rightskip}{0pt plus 5cm}virtual {\bf Data\+Type} Type\+Interface\+::supported\+Type (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [pure virtual]}, {\ttfamily [slot]}}}\label{a01357_a05736f72d3220fbd4152e902b0fa7756}


Return your supported object type( e.\+g. D\+A\+T\+A\+\_\+\+T\+R\+I\+A\+N\+G\+L\+E\+\_\+\+M\+E\+S\+H ) 

The function is used from add\+Empty in the core to check if your plugin can create an object of a given data\+Type. If so, your add\+Empty function will be invoked to create it. 

Implemented in \hyperlink{a01358_af6612a603253582d733aa9646ea2a4c2}{Type\+Light\+Plugin}, \hyperlink{a01348_a6b95324225e22f19f9f0a13ec4fa052a}{Type\+B\+Spline\+Curve\+Plugin}, \hyperlink{a01349_ae0231e6d959d2aeb914cb6ac3fe9e007}{Type\+B\+Spline\+Surface\+Plugin}, \hyperlink{a01368_a1e90e23cca8875da7ce4c8d999af96ba}{Type\+Skeleton\+Plugin}, \hyperlink{a01350_a462d181c9b63f73de6f19a751209f026}{Type\+Camera\+Plugin}, \hyperlink{a01370_a9e7b06a4659ce9b19c88d7a8231ac139}{Type\+Splat\+Cloud\+Plugin}, \hyperlink{a01365_a5305d369a087045a3bef51fede4b6b42}{Type\+Poly\+Mesh\+Plugin}, \hyperlink{a01366_a01d6038d83d0dd327812ff61e060e7d2}{Type\+Qt\+Widget\+Plugin}, \hyperlink{a01372_a6bfb504b5a8164480585d257a532e5bf}{Type\+Triangle\+Mesh\+Plugin}, \hyperlink{a01362_a7f2385e899f961f719218b52fac7c1a4}{Type\+Plane\+Plugin}, \hyperlink{a01369_af4540f220b74976c78b63f399c4e75f1}{Type\+Sphere\+Plugin}, \hyperlink{a01351_afa0e7d38ff5b82e44db2cfa5155bdb76}{Type\+Coordsys\+Plugin}, and \hyperlink{a01364_ac4565fec5953c19551908d1ac7c8186e}{Type\+Poly\+Line\+Plugin}.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/\+Base\+Plugin/\hyperlink{a02473}{Type\+Interface.\+hh}\end{DoxyCompactItemize}
