\hypertarget{a11076}{}\section{File\+S\+T\+L\+Plugin Class Reference}
\label{a11076}\index{File\+S\+T\+L\+Plugin@{File\+S\+T\+L\+Plugin}}
Inheritance diagram for File\+S\+T\+L\+Plugin\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=1.469816cm]{a11076}
\end{center}
\end{figure}
\subsection*{Public Slots}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a11076_a940402f0ce926f43a5143ad0bc18fb08}\label{a11076_a940402f0ce926f43a5143ad0bc18fb08}} 
int \hyperlink{a11076_a940402f0ce926f43a5143ad0bc18fb08}{load\+Object} (Q\+String \+\_\+filename)
\begin{DoxyCompactList}\small\item\em Loads Object as triangle mesh. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11076_a7f813798d7d2b19140f895888a456840}\label{a11076_a7f813798d7d2b19140f895888a456840}} 
bool {\bfseries save\+Object} (int \+\_\+id, Q\+String \+\_\+filename)
\item 
bool \hyperlink{a11076_acb47ff3181215064f30f857cac4c7373}{save\+Object} (int \+\_\+id, Q\+String \+\_\+filename, const bool \+\_\+binary, const std\+::streamsize \+\_\+precision=6)
\begin{DoxyCompactList}\small\item\em Scripting function to set binary mode and precision. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11076_aab76bf702ffe43cea51ddc1e9508211a}\label{a11076_aab76bf702ffe43cea51ddc1e9508211a}} 
Q\+String {\bfseries version} ()
\end{DoxyCompactItemize}
\subsection*{Signals}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a11076_ae9bc7b753129b66c0452b1aa23191a0c}\label{a11076_ae9bc7b753129b66c0452b1aa23191a0c}} 
void {\bfseries opened\+File} (int \+\_\+id)
\item 
\mbox{\Hypertarget{a11076_ac44071648122f66d6e1275070b70be2a}\label{a11076_ac44071648122f66d6e1275070b70be2a}} 
void {\bfseries add\+Empty\+Object} (\hyperlink{a07048}{Data\+Type} \+\_\+type, int \&\+\_\+id)
\item 
\mbox{\Hypertarget{a11076_ad84d6c95a5bbfbb9929810582e209a5c}\label{a11076_ad84d6c95a5bbfbb9929810582e209a5c}} 
void {\bfseries load} (Q\+String \+\_\+filename, \hyperlink{a07048}{Data\+Type} \+\_\+type, int \&\+\_\+id)
\item 
\mbox{\Hypertarget{a11076_a156c14220aa416f3993140ec3eea280d}\label{a11076_a156c14220aa416f3993140ec3eea280d}} 
void {\bfseries save} (int \+\_\+id, Q\+String \+\_\+filename)
\item 
\mbox{\Hypertarget{a11076_a55efbbc3401ea779e066af8caf206c3b}\label{a11076_a55efbbc3401ea779e066af8caf206c3b}} 
void {\bfseries log} (\hyperlink{a00035_a595b2880f3ae74561ba390e3fd8c0e7c}{Logtype} \+\_\+type, Q\+String \+\_\+message)
\item 
\mbox{\Hypertarget{a11076_a49f6614da5ad5f9ef82888554ff969b0}\label{a11076_a49f6614da5ad5f9ef82888554ff969b0}} 
void {\bfseries log} (Q\+String \+\_\+message)
\item 
\mbox{\Hypertarget{a11076_afa5fc6ae113edec6237305bc491f47ce}\label{a11076_afa5fc6ae113edec6237305bc491f47ce}} 
void {\bfseries update\+View} ()
\item 
\mbox{\Hypertarget{a11076_a606261540d860f50136e531373562e71}\label{a11076_a606261540d860f50136e531373562e71}} 
void {\bfseries updated\+Object} (int \+\_\+identifier, const \hyperlink{a07096}{Update\+Type} \&\+\_\+type)
\item 
\mbox{\Hypertarget{a11076_a22e08e6f8744bf94635c79a0811d5fe8}\label{a11076_a22e08e6f8744bf94635c79a0811d5fe8}} 
void {\bfseries delete\+Object} (int \+\_\+id)
\item 
\mbox{\Hypertarget{a11076_a3d4cc5ed7fc7631a46012897e7192a65}\label{a11076_a3d4cc5ed7fc7631a46012897e7192a65}} 
void {\bfseries set\+Slot\+Description} (Q\+String \+\_\+slot\+Name, Q\+String \+\_\+slot\+Description, Q\+String\+List \+\_\+parameters, Q\+String\+List \+\_\+descriptions)
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a11076_a2e373ff98893f2f90089c7dacc79cb3f}\label{a11076_a2e373ff98893f2f90089c7dacc79cb3f}} 
\hyperlink{a11076_a2e373ff98893f2f90089c7dacc79cb3f}{File\+S\+T\+L\+Plugin} ()
\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
Q\+String \hyperlink{a11076_ab0e99d2b3cd3e0e899fb12f61bfe9b5a}{name} ()
\begin{DoxyCompactList}\small\item\em Return a name for the plugin. \end{DoxyCompactList}\item 
Q\+String \hyperlink{a11076_a1f9d9da78be04d83b5dde8430e5bd034}{description} ()
\begin{DoxyCompactList}\small\item\em Return a description of what the plugin is doing. \end{DoxyCompactList}\item 
\hyperlink{a07048}{Data\+Type} \hyperlink{a11076_a0ebe4f3d4e4849c7cdc355d40a548b20}{supported\+Type} ()
\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 
Q\+String \hyperlink{a11076_ace9f515ac5cd128e2410a83f082495e6}{get\+Save\+Filters} ()
\item 
Q\+String \hyperlink{a11076_a94ee385be9592a6ecc46b7ea4e2d53c7}{get\+Load\+Filters} ()
\item 
Q\+Widget $\ast$ \hyperlink{a11076_a08c3a58c0d414e669f0f2d6d712f5052}{save\+Options\+Widget} (Q\+String)
\item 
Q\+Widget $\ast$ \hyperlink{a11076_a345357efd9884581875f9d9bb78786ed}{load\+Options\+Widget} (Q\+String)
\end{DoxyCompactItemize}
\subsection*{Private Slots}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a11076_a3b6aafeb1c359911dce33ae1f6a9adc6}\label{a11076_a3b6aafeb1c359911dce33ae1f6a9adc6}} 
void {\bfseries file\+Opened} (int)
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a11076_ad4f37953073a029797a3bcfeb8b686f7}{nogui\+Supported} ()
\item 
void \hyperlink{a11076_a2054fd6039fc76cef8d814044300a9e2}{initialize\+Plugin} ()
\begin{DoxyCompactList}\small\item\em Initialize Plugin. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11076_acfdf4e040e358817f7652e3f3c22fba7}\label{a11076_acfdf4e040e358817f7652e3f3c22fba7}} 
void \hyperlink{a11076_acfdf4e040e358817f7652e3f3c22fba7}{slot\+Load\+Default} ()
\begin{DoxyCompactList}\small\item\em Slot called when user wants to save the given Load options as default. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11076_a0ab7eebab99fe8ade83f37d96fea5cf3}\label{a11076_a0ab7eebab99fe8ade83f37d96fea5cf3}} 
void \hyperlink{a11076_a0ab7eebab99fe8ade83f37d96fea5cf3}{slot\+Save\+Default} ()
\begin{DoxyCompactList}\small\item\em Slot called when user wants to save the given Save options as default. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a11076_ab343be9219980a44b9d480738398da1d}\label{a11076_ab343be9219980a44b9d480738398da1d}} 
Q\+Widget $\ast$ {\bfseries save\+Options\+\_\+}
\item 
\mbox{\Hypertarget{a11076_af57b04c6bc87480b9a03d1ccd27b38ca}\label{a11076_af57b04c6bc87480b9a03d1ccd27b38ca}} 
Q\+Widget $\ast$ {\bfseries load\+Options\+\_\+}
\item 
\mbox{\Hypertarget{a11076_a2b199d93c1a60581c0e8a0099d813667}\label{a11076_a2b199d93c1a60581c0e8a0099d813667}} 
Q\+Check\+Box $\ast$ {\bfseries save\+Binary\+\_\+}
\item 
\mbox{\Hypertarget{a11076_aed484c4726923a5ae8941d995a8af6e8}\label{a11076_aed484c4726923a5ae8941d995a8af6e8}} 
Q\+Label $\ast$ {\bfseries save\+Precision\+Label\+\_\+}
\item 
\mbox{\Hypertarget{a11076_abf2cbffe1d5f35a4112d2bd0c8aea767}\label{a11076_abf2cbffe1d5f35a4112d2bd0c8aea767}} 
Q\+Spin\+Box $\ast$ {\bfseries save\+Precision\+\_\+}
\item 
\mbox{\Hypertarget{a11076_abd051c154b5123a423f067b148491c3c}\label{a11076_abd051c154b5123a423f067b148491c3c}} 
Q\+Check\+Box $\ast$ {\bfseries load\+Face\+Normal\+\_\+}
\item 
\mbox{\Hypertarget{a11076_a29b9d88512ca47dd9adeb67d94cdb3f6}\label{a11076_a29b9d88512ca47dd9adeb67d94cdb3f6}} 
Q\+Push\+Button $\ast$ {\bfseries save\+Default\+Button\+\_\+}
\item 
\mbox{\Hypertarget{a11076_a294ac02246dffe365f06af7d084e7c15}\label{a11076_a294ac02246dffe365f06af7d084e7c15}} 
Q\+Push\+Button $\ast$ {\bfseries load\+Default\+Button\+\_\+}
\end{DoxyCompactItemize}


\subsection{Detailed Description}


Definition at line 64 of file File\+S\+T\+L.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{a11076_a1f9d9da78be04d83b5dde8430e5bd034}\label{a11076_a1f9d9da78be04d83b5dde8430e5bd034}} 
\index{File\+S\+T\+L\+Plugin@{File\+S\+T\+L\+Plugin}!description@{description}}
\index{description@{description}!File\+S\+T\+L\+Plugin@{File\+S\+T\+L\+Plugin}}
\subsubsection{\texorpdfstring{description()}{description()}}
{\footnotesize\ttfamily Q\+String File\+S\+T\+L\+Plugin\+::description (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Return a description of what the plugin is doing. 

This function has to return a basic description of the plugin 

Implements \hyperlink{a06872_a43f0d3612695b53c848c14f48fea9a7a}{Base\+Interface}.



Definition at line 112 of file File\+S\+T\+L.\+hh.

\mbox{\Hypertarget{a11076_a94ee385be9592a6ecc46b7ea4e2d53c7}\label{a11076_a94ee385be9592a6ecc46b7ea4e2d53c7}} 
\index{File\+S\+T\+L\+Plugin@{File\+S\+T\+L\+Plugin}!get\+Load\+Filters@{get\+Load\+Filters}}
\index{get\+Load\+Filters@{get\+Load\+Filters}!File\+S\+T\+L\+Plugin@{File\+S\+T\+L\+Plugin}}
\subsubsection{\texorpdfstring{get\+Load\+Filters()}{getLoadFilters()}}
{\footnotesize\ttfamily Q\+String File\+S\+T\+L\+Plugin\+::get\+Load\+Filters (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}

Return the Qt Filters for File dialogs when loading files (e.\+g. \char`\"{}\+Off files ( $\ast$.\+off )\char`\"{} ) 

Implements \hyperlink{a06880_a804009a394ded7436b43c624af9cc44d}{File\+Interface}.



Definition at line 79 of file File\+S\+T\+L.\+cc.

\mbox{\Hypertarget{a11076_ace9f515ac5cd128e2410a83f082495e6}\label{a11076_ace9f515ac5cd128e2410a83f082495e6}} 
\index{File\+S\+T\+L\+Plugin@{File\+S\+T\+L\+Plugin}!get\+Save\+Filters@{get\+Save\+Filters}}
\index{get\+Save\+Filters@{get\+Save\+Filters}!File\+S\+T\+L\+Plugin@{File\+S\+T\+L\+Plugin}}
\subsubsection{\texorpdfstring{get\+Save\+Filters()}{getSaveFilters()}}
{\footnotesize\ttfamily Q\+String File\+S\+T\+L\+Plugin\+::get\+Save\+Filters (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}

Get the Qt Filters for Filedialogs when saving files (e.\+g. \char`\"{}\+Off files ( $\ast$.\+off )\char`\"{} ) 

Implements \hyperlink{a06880_a86b79f14fef9913720c6456df43de7df}{File\+Interface}.



Definition at line 85 of file File\+S\+T\+L.\+cc.

\mbox{\Hypertarget{a11076_a2054fd6039fc76cef8d814044300a9e2}\label{a11076_a2054fd6039fc76cef8d814044300a9e2}} 
\index{File\+S\+T\+L\+Plugin@{File\+S\+T\+L\+Plugin}!initialize\+Plugin@{initialize\+Plugin}}
\index{initialize\+Plugin@{initialize\+Plugin}!File\+S\+T\+L\+Plugin@{File\+S\+T\+L\+Plugin}}
\subsubsection{\texorpdfstring{initialize\+Plugin()}{initializePlugin()}}
{\footnotesize\ttfamily void File\+S\+T\+L\+Plugin\+::initialize\+Plugin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [virtual]}}



Initialize Plugin. 

This slot is called if the plugin is loaded and has to be initialized. All initialization stuff in this slot has to stay inside the plugin, no external signals are allowed here (and will be ignored). Don\textquotesingle{}t create any objects via \hyperlink{a06173}{Plugin\+Functions} here. Use the \hyperlink{a06872_a5f240478907447bf172618bd4205df65}{plugins\+Initialized()} slot for external initialization. After execution of this slot your plugin should be fully functional. Only gui elements may be uninitialized and should be created in \hyperlink{a06872_a5f240478907447bf172618bd4205df65}{plugins\+Initialized()}. 

Reimplemented from \hyperlink{a06872_a705fdf2e221af47198aed689b0da7a32}{Base\+Interface}.



Definition at line 66 of file File\+S\+T\+L.\+cc.

\mbox{\Hypertarget{a11076_a345357efd9884581875f9d9bb78786ed}\label{a11076_a345357efd9884581875f9d9bb78786ed}} 
\index{File\+S\+T\+L\+Plugin@{File\+S\+T\+L\+Plugin}!load\+Options\+Widget@{load\+Options\+Widget}}
\index{load\+Options\+Widget@{load\+Options\+Widget}!File\+S\+T\+L\+Plugin@{File\+S\+T\+L\+Plugin}}
\subsubsection{\texorpdfstring{load\+Options\+Widget()}{loadOptionsWidget()}}
{\footnotesize\ttfamily Q\+Widget $\ast$ File\+S\+T\+L\+Plugin\+::load\+Options\+Widget (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+current\+Filter }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}

You can provide a special widget showing options for loading your file types depending on the current filter

\+\_\+current\+Filter\+: one filter from load\+Filters

Return 0 when you don\textquotesingle{}t need one 

Implements \hyperlink{a06880_a69ddbb8db7fd5b9257f35bc0148ef7c0}{File\+Interface}.



Definition at line 281 of file File\+S\+T\+L.\+cc.

\mbox{\Hypertarget{a11076_ab0e99d2b3cd3e0e899fb12f61bfe9b5a}\label{a11076_ab0e99d2b3cd3e0e899fb12f61bfe9b5a}} 
\index{File\+S\+T\+L\+Plugin@{File\+S\+T\+L\+Plugin}!name@{name}}
\index{name@{name}!File\+S\+T\+L\+Plugin@{File\+S\+T\+L\+Plugin}}
\subsubsection{\texorpdfstring{name()}{name()}}
{\footnotesize\ttfamily Q\+String File\+S\+T\+L\+Plugin\+::name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Return a name for the plugin. 

This Function has to return the name of the plugin. 

Implements \hyperlink{a06872_a2b351aa6ef0eb368bce735e243235958}{Base\+Interface}.



Definition at line 111 of file File\+S\+T\+L.\+hh.

\mbox{\Hypertarget{a11076_ad4f37953073a029797a3bcfeb8b686f7}\label{a11076_ad4f37953073a029797a3bcfeb8b686f7}} 
\index{File\+S\+T\+L\+Plugin@{File\+S\+T\+L\+Plugin}!nogui\+Supported@{nogui\+Supported}}
\index{nogui\+Supported@{nogui\+Supported}!File\+S\+T\+L\+Plugin@{File\+S\+T\+L\+Plugin}}
\subsubsection{\texorpdfstring{nogui\+Supported()}{noguiSupported()}}
{\footnotesize\ttfamily void File\+S\+T\+L\+Plugin\+::nogui\+Supported (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}

Using this function you can inform the core that your plugin can run without creating a widget. If your plugin does not implement this function, it will not be loaded in scripting mode without gui. You don\textquotesingle{}t have to do anything in this function. 

Reimplemented from \hyperlink{a06872_a79ba17f1f9aca08b95ec56f85d2d1204}{Base\+Interface}.



Definition at line 95 of file File\+S\+T\+L.\+hh.

\mbox{\Hypertarget{a11076_acb47ff3181215064f30f857cac4c7373}\label{a11076_acb47ff3181215064f30f857cac4c7373}} 
\index{File\+S\+T\+L\+Plugin@{File\+S\+T\+L\+Plugin}!save\+Object@{save\+Object}}
\index{save\+Object@{save\+Object}!File\+S\+T\+L\+Plugin@{File\+S\+T\+L\+Plugin}}
\subsubsection{\texorpdfstring{save\+Object}{saveObject}}
{\footnotesize\ttfamily bool File\+S\+T\+L\+Plugin\+::save\+Object (\begin{DoxyParamCaption}\item[{int}]{\+\_\+id,  }\item[{Q\+String}]{\+\_\+filename,  }\item[{const bool}]{\+\_\+binary,  }\item[{const std\+::streamsize}]{\+\_\+precision = {\ttfamily 6} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [slot]}}



Scripting function to set binary mode and precision. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+id} & Object that should be saved \\
\hline
{\em \+\_\+filename} & Filename of the S\+TL file \\
\hline
{\em \+\_\+binary} & Binary mode? Defaults to false \\
\hline
{\em \+\_\+precision} & Precision of values (Defaults to 6) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Successful write? 
\end{DoxyReturn}


Definition at line 206 of file File\+S\+T\+L.\+cc.

\mbox{\Hypertarget{a11076_a08c3a58c0d414e669f0f2d6d712f5052}\label{a11076_a08c3a58c0d414e669f0f2d6d712f5052}} 
\index{File\+S\+T\+L\+Plugin@{File\+S\+T\+L\+Plugin}!save\+Options\+Widget@{save\+Options\+Widget}}
\index{save\+Options\+Widget@{save\+Options\+Widget}!File\+S\+T\+L\+Plugin@{File\+S\+T\+L\+Plugin}}
\subsubsection{\texorpdfstring{save\+Options\+Widget()}{saveOptionsWidget()}}
{\footnotesize\ttfamily Q\+Widget $\ast$ File\+S\+T\+L\+Plugin\+::save\+Options\+Widget (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+current\+Filter }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}

You can provide a special widget showing options for saving your file types depending on the current filter

\+\_\+current\+Filter\+: one filter from save\+Filters

Return 0 when you don\textquotesingle{}t need one 

Implements \hyperlink{a06880_a5cfabe9faa5b3e9f107766a6b670626b}{File\+Interface}.



Definition at line 244 of file File\+S\+T\+L.\+cc.

\mbox{\Hypertarget{a11076_a0ebe4f3d4e4849c7cdc355d40a548b20}\label{a11076_a0ebe4f3d4e4849c7cdc355d40a548b20}} 
\index{File\+S\+T\+L\+Plugin@{File\+S\+T\+L\+Plugin}!supported\+Type@{supported\+Type}}
\index{supported\+Type@{supported\+Type}!File\+S\+T\+L\+Plugin@{File\+S\+T\+L\+Plugin}}
\subsubsection{\texorpdfstring{supported\+Type()}{supportedType()}}
{\footnotesize\ttfamily \hyperlink{a07048}{Data\+Type} File\+S\+T\+L\+Plugin\+::supported\+Type (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



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

If you support multiple Data\+Types you can combine them bitwise here. The function is used from the load and save code to check if your plugin can handle an object of a given data\+Type. 

Implements \hyperlink{a06880_add81abf9277dae44167763da4371fb28}{File\+Interface}.



Definition at line 91 of file File\+S\+T\+L.\+cc.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Plugin\+Collection-\/\+File\+Plugins/\+Plugin-\/\+File\+S\+T\+L/File\+S\+T\+L.\+hh\item 
Plugin\+Collection-\/\+File\+Plugins/\+Plugin-\/\+File\+S\+T\+L/File\+S\+T\+L.\+cc\end{DoxyCompactItemize}
