\hypertarget{classTypeInterface}{}\section{Type\+Interface Class Reference}
\label{classTypeInterface}\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]{classTypeInterface}
\end{center}
\end{figure}
\subsection*{Public Slots}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classTypeInterface_a1b445dfe8498d5ef73ab5e7d09a480f4}\label{classTypeInterface_a1b445dfe8498d5ef73ab5e7d09a480f4}} 
virtual bool {\bfseries register\+Type} ()=0
\item 
virtual int \hyperlink{classTypeInterface_a50b2bfa5db5ff3ce6f3e8cc8e40260f0}{add\+Empty} ()=0
\begin{DoxyCompactList}\small\item\em Create an empty object. \end{DoxyCompactList}\item 
virtual \hyperlink{classDataType}{Data\+Type} \hyperlink{classTypeInterface_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\+SH ) \end{DoxyCompactList}\item 
virtual void \hyperlink{classTypeInterface_a93656bd18b755dcaa2eb9ad953e4a516}{generate\+Backup} (int \+\_\+id, Q\+String \+\_\+name, \hyperlink{classUpdateType}{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{classTypeInterface_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 
\mbox{\Hypertarget{classTypeInterface_a5e8063e8d5c9294a59e2f060460e6413}\label{classTypeInterface_a5e8063e8d5c9294a59e2f060460e6413}} 
virtual \hyperlink{classTypeInterface_a5e8063e8d5c9294a59e2f060460e6413}{$\sim$\+Type\+Interface} ()
\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 63 of file Type\+Interface.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classTypeInterface_a50b2bfa5db5ff3ce6f3e8cc8e40260f0}\label{classTypeInterface_a50b2bfa5db5ff3ce6f3e8cc8e40260f0}} 
\index{Type\+Interface@{Type\+Interface}!add\+Empty@{add\+Empty}}
\index{add\+Empty@{add\+Empty}!Type\+Interface@{Type\+Interface}}
\subsubsection{\texorpdfstring{add\+Empty}{addEmpty}}
{\footnotesize\ttfamily virtual int Type\+Interface\+::add\+Empty (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}, {\ttfamily [slot]}}



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{classTypeLightPlugin_a68df1f138415cbd60f842bb707d219c2}{Type\+Light\+Plugin}, \hyperlink{classTypeBSplineCurvePlugin_a0f755702eb3125f050d61050d6650f91}{Type\+B\+Spline\+Curve\+Plugin}, \hyperlink{classTypeBSplineSurfacePlugin_ab18de417f45ff0437ccd01e66730ac8a}{Type\+B\+Spline\+Surface\+Plugin}, \hyperlink{classTypeSkeletonPlugin_a0c3faa8394d0d24be912fc1175643970}{Type\+Skeleton\+Plugin}, \hyperlink{classTypeSplatCloudPlugin_a8367cbd8058101b4991f2fd4a20ea0b8}{Type\+Splat\+Cloud\+Plugin}, \hyperlink{classTypeCameraPlugin_afd907fda4a425bac4bd4c75812efabef}{Type\+Camera\+Plugin}, \hyperlink{classTypePolyLinePlugin_a327c898a9ffc60fcef5cf563f72b16c3}{Type\+Poly\+Line\+Plugin}, \hyperlink{classTypeSpherePlugin_a7c10ec0d51f3c9c312e199a38fdd93bd}{Type\+Sphere\+Plugin}, \hyperlink{classTypePolyMeshPlugin_a57c00caf3624fe837de8cd90fc564c21}{Type\+Poly\+Mesh\+Plugin}, \hyperlink{classTypeTriangleMeshPlugin_a50d57fb90c65c5df50a13247ecacddbc}{Type\+Triangle\+Mesh\+Plugin}, \hyperlink{classTypePolyLineCollectionPlugin_a0b6a81fee7cfcbcd95c707ded0c8efe4}{Type\+Poly\+Line\+Collection\+Plugin}, \hyperlink{classTypeQtWidgetPlugin_a2ea59d7607a8533e98321e50444bd731}{Type\+Qt\+Widget\+Plugin}, \hyperlink{classTypePlanePlugin_ac42ac87d0087989c8ced804bb289fb83}{Type\+Plane\+Plugin}, and \hyperlink{classTypeCoordsysPlugin_ae3320e8632f5e5c31a255765b6c1f240}{Type\+Coordsys\+Plugin}.

\mbox{\Hypertarget{classTypeInterface_a09129158fb236ba0e8cda73b5c8b566e}\label{classTypeInterface_a09129158fb236ba0e8cda73b5c8b566e}} 
\index{Type\+Interface@{Type\+Interface}!empty\+Object\+Added@{empty\+Object\+Added}}
\index{empty\+Object\+Added@{empty\+Object\+Added}!Type\+Interface@{Type\+Interface}}
\subsubsection{\texorpdfstring{empty\+Object\+Added}{emptyObjectAdded}}
{\footnotesize\ttfamily virtual void Type\+Interface\+::empty\+Object\+Added (\begin{DoxyParamCaption}\item[{int}]{\+\_\+id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [signal]}}



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 71 of file Type\+Interface.\+hh.

\mbox{\Hypertarget{classTypeInterface_a93656bd18b755dcaa2eb9ad953e4a516}\label{classTypeInterface_a93656bd18b755dcaa2eb9ad953e4a516}} 
\index{Type\+Interface@{Type\+Interface}!generate\+Backup@{generate\+Backup}}
\index{generate\+Backup@{generate\+Backup}!Type\+Interface@{Type\+Interface}}
\subsubsection{\texorpdfstring{generate\+Backup}{generateBackup}}
{\footnotesize\ttfamily virtual void Type\+Interface\+::generate\+Backup (\begin{DoxyParamCaption}\item[{int}]{\+\_\+id,  }\item[{Q\+String}]{\+\_\+name,  }\item[{\hyperlink{classUpdateType}{Update\+Type}}]{\+\_\+type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [slot]}}



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{classTypeSkeletonPlugin_a57e52841f03a8bd00302259abb85ce9c}{Type\+Skeleton\+Plugin}, \hyperlink{classTypeSplatCloudPlugin_abb5fd010bcc7bfe474cdb4425bfcbfd0}{Type\+Splat\+Cloud\+Plugin}, \hyperlink{classTypePolyMeshPlugin_ad19895dd975b28df700f3dad3b9e0518}{Type\+Poly\+Mesh\+Plugin}, and \hyperlink{classTypeTriangleMeshPlugin_a1fc7e5f0c7f4218f06984be93c2185a2}{Type\+Triangle\+Mesh\+Plugin}.



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

\mbox{\Hypertarget{classTypeInterface_a05736f72d3220fbd4152e902b0fa7756}\label{classTypeInterface_a05736f72d3220fbd4152e902b0fa7756}} 
\index{Type\+Interface@{Type\+Interface}!supported\+Type@{supported\+Type}}
\index{supported\+Type@{supported\+Type}!Type\+Interface@{Type\+Interface}}
\subsubsection{\texorpdfstring{supported\+Type}{supportedType}}
{\footnotesize\ttfamily virtual \hyperlink{classDataType}{Data\+Type} Type\+Interface\+::supported\+Type (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}, {\ttfamily [slot]}}



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

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{classTypeLightPlugin_af6612a603253582d733aa9646ea2a4c2}{Type\+Light\+Plugin}, \hyperlink{classTypeBSplineCurvePlugin_a6b95324225e22f19f9f0a13ec4fa052a}{Type\+B\+Spline\+Curve\+Plugin}, \hyperlink{classTypeBSplineSurfacePlugin_ae0231e6d959d2aeb914cb6ac3fe9e007}{Type\+B\+Spline\+Surface\+Plugin}, \hyperlink{classTypeSkeletonPlugin_a1e90e23cca8875da7ce4c8d999af96ba}{Type\+Skeleton\+Plugin}, \hyperlink{classTypeSplatCloudPlugin_a9e7b06a4659ce9b19c88d7a8231ac139}{Type\+Splat\+Cloud\+Plugin}, \hyperlink{classTypeCameraPlugin_a462d181c9b63f73de6f19a751209f026}{Type\+Camera\+Plugin}, \hyperlink{classTypePolyLinePlugin_ac4565fec5953c19551908d1ac7c8186e}{Type\+Poly\+Line\+Plugin}, \hyperlink{classTypeSpherePlugin_af4540f220b74976c78b63f399c4e75f1}{Type\+Sphere\+Plugin}, \hyperlink{classTypePolyMeshPlugin_a5305d369a087045a3bef51fede4b6b42}{Type\+Poly\+Mesh\+Plugin}, \hyperlink{classTypeTriangleMeshPlugin_a6bfb504b5a8164480585d257a532e5bf}{Type\+Triangle\+Mesh\+Plugin}, \hyperlink{classTypePolyLineCollectionPlugin_a9fcfcdfe0739279aa4cde3b6e658f603}{Type\+Poly\+Line\+Collection\+Plugin}, \hyperlink{classTypeQtWidgetPlugin_a01d6038d83d0dd327812ff61e060e7d2}{Type\+Qt\+Widget\+Plugin}, \hyperlink{classTypePlanePlugin_a7f2385e899f961f719218b52fac7c1a4}{Type\+Plane\+Plugin}, and \hyperlink{classTypeCoordsysPlugin_afa0e7d38ff5b82e44db2cfa5155bdb76}{Type\+Coordsys\+Plugin}.



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