\hypertarget{a10964}{}\section{File\+O\+F\+F\+Plugin Class Reference}
\label{a10964}\index{File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}}
Inheritance diagram for File\+O\+F\+F\+Plugin\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=1.259843cm]{a10964}
\end{center}
\end{figure}
\subsection*{Public Slots}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a10964_ab2c8d3f200ce03637915ab2af523cc8a}\label{a10964_ab2c8d3f200ce03637915ab2af523cc8a}} 
int \hyperlink{a10964_ab2c8d3f200ce03637915ab2af523cc8a}{load\+Object} (Q\+String \+\_\+filename)
\begin{DoxyCompactList}\small\item\em Loads Object and converts it to a triangle mesh if possible. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10964_a0e8634415a4eb7a9a57d64c0ff3bd83a}\label{a10964_a0e8634415a4eb7a9a57d64c0ff3bd83a}} 
int \hyperlink{a10964_a0e8634415a4eb7a9a57d64c0ff3bd83a}{load\+Object} (Q\+String \+\_\+filename, \hyperlink{a07048}{Data\+Type} \+\_\+type)
\begin{DoxyCompactList}\small\item\em Loads Object with given datatype. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10964_aeef68bb241bf4bb277fb7b5462ea4de7}\label{a10964_aeef68bb241bf4bb277fb7b5462ea4de7}} 
bool {\bfseries save\+Object} (int \+\_\+id, Q\+String \+\_\+filename)
\item 
\mbox{\Hypertarget{a10964_a7b3057a0ffe0c8516804d7a19789c233}\label{a10964_a7b3057a0ffe0c8516804d7a19789c233}} 
Q\+String {\bfseries version} ()
\end{DoxyCompactItemize}
\subsection*{Signals}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a10964_a65f77212a0ea91681ca7ab04aa22372a}\label{a10964_a65f77212a0ea91681ca7ab04aa22372a}} 
void {\bfseries opened\+File} (int \+\_\+id)
\item 
\mbox{\Hypertarget{a10964_ab21889404ca03c7a1689497337dd7952}\label{a10964_ab21889404ca03c7a1689497337dd7952}} 
void {\bfseries add\+Empty\+Object} (\hyperlink{a07048}{Data\+Type} \+\_\+type, int \&\+\_\+id)
\item 
\mbox{\Hypertarget{a10964_a6148fdfca91acb7ece84826d862853a9}\label{a10964_a6148fdfca91acb7ece84826d862853a9}} 
void {\bfseries load} (Q\+String \+\_\+filename, \hyperlink{a07048}{Data\+Type} \+\_\+type, int \&\+\_\+id)
\item 
\mbox{\Hypertarget{a10964_aaf3fe9c56e59e0d9c148bed0881b303c}\label{a10964_aaf3fe9c56e59e0d9c148bed0881b303c}} 
void {\bfseries save} (int \+\_\+id, Q\+String \+\_\+filename)
\item 
\mbox{\Hypertarget{a10964_ada76e00272b009c13f4348948fbc56c3}\label{a10964_ada76e00272b009c13f4348948fbc56c3}} 
void {\bfseries log} (\hyperlink{a00035_a595b2880f3ae74561ba390e3fd8c0e7c}{Logtype} \+\_\+type, Q\+String \+\_\+message)
\item 
\mbox{\Hypertarget{a10964_af155e3968ed0f5b468b7f43b7f7dca24}\label{a10964_af155e3968ed0f5b468b7f43b7f7dca24}} 
void {\bfseries log} (Q\+String \+\_\+message)
\item 
\mbox{\Hypertarget{a10964_a7bf7c0cf2106c2c844452e4445ca00fd}\label{a10964_a7bf7c0cf2106c2c844452e4445ca00fd}} 
void {\bfseries update\+View} ()
\item 
\mbox{\Hypertarget{a10964_a18efcda5f91dc50d11b51adaddb7c98b}\label{a10964_a18efcda5f91dc50d11b51adaddb7c98b}} 
void {\bfseries updated\+Object} (int \+\_\+identifier, const \hyperlink{a07096}{Update\+Type} \&\+\_\+type)
\item 
\mbox{\Hypertarget{a10964_a212360290068071afea3bbdaaba93530}\label{a10964_a212360290068071afea3bbdaaba93530}} 
void {\bfseries delete\+Object} (int \+\_\+id)
\item 
\mbox{\Hypertarget{a10964_aead4d785b1406cc2aecbab9765ddae3f}\label{a10964_aead4d785b1406cc2aecbab9765ddae3f}} 
void {\bfseries show\+Status\+Message} (Q\+String \+\_\+message, int \+\_\+timeout=0)
\item 
\mbox{\Hypertarget{a10964_a71a90ad982d56488c5b8fe36d098ce04}\label{a10964_a71a90ad982d56488c5b8fe36d098ce04}} 
void {\bfseries set\+Status} (\hyperlink{a06175_af5f91d43a3317049265b9b0772e796eb}{Application\+Status\+::application\+Status} \+\_\+status)
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a10964_aa6108fcbe32fdf2447ed2c3cd52c7f82}\label{a10964_aa6108fcbe32fdf2447ed2c3cd52c7f82}} 
\hyperlink{a10964_aa6108fcbe32fdf2447ed2c3cd52c7f82}{File\+O\+F\+F\+Plugin} ()
\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
Q\+String \hyperlink{a10964_a863692ed3d9b301994c35cd948eb05ae}{name} ()
\begin{DoxyCompactList}\small\item\em Return a name for the plugin. \end{DoxyCompactList}\item 
Q\+String \hyperlink{a10964_a8f7dd8b9f07e2fa8e1d47adeb8bf06b8}{description} ()
\begin{DoxyCompactList}\small\item\em Return a description of what the plugin is doing. \end{DoxyCompactList}\item 
\hyperlink{a07048}{Data\+Type} \hyperlink{a10964_a936ae59c6376b16fb8d66a3720723ae4}{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{a10964_a3e1c6c1e86325fe37c5db300995342dc}{get\+Save\+Filters} ()
\item 
Q\+String \hyperlink{a10964_a705c91a061c10dc766968c72adbdbcf2}{get\+Load\+Filters} ()
\item 
Q\+Widget $\ast$ \hyperlink{a10964_a95ec608c2577e8d114eddb821355f55b}{save\+Options\+Widget} (Q\+String)
\item 
Q\+Widget $\ast$ \hyperlink{a10964_a6d9a9aeed0074b2a7afa5ca5de0b212d}{load\+Options\+Widget} (Q\+String)
\end{DoxyCompactItemize}
\subsection*{Private Slots}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a10964_ad9dbb8350a1032a4e60ccc66ab6546d9}\label{a10964_ad9dbb8350a1032a4e60ccc66ab6546d9}} 
void {\bfseries file\+Opened} (int)
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a10964_a1a2104a4c27d80771e21db0fc5c971a9}{nogui\+Supported} ()
\item 
void \hyperlink{a10964_a147d107d0ad0c86dcc080f44fa007b84}{initialize\+Plugin} ()
\begin{DoxyCompactList}\small\item\em Initialize Plugin. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10964_a0b799c09c211cc90d13ef625245726d1}\label{a10964_a0b799c09c211cc90d13ef625245726d1}} 
void \hyperlink{a10964_a0b799c09c211cc90d13ef625245726d1}{handle\+Trimesh\+Dialog} ()
\begin{DoxyCompactList}\small\item\em Displays a dialog to ask how to load the mesh (triangle, polymesh , autodetect) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10964_a640297b42796a6c42b5033b42448cf21}\label{a10964_a640297b42796a6c42b5033b42448cf21}} 
void \hyperlink{a10964_a640297b42796a6c42b5033b42448cf21}{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{a10964_a986a79960a24fca49411fe29dbd06227}\label{a10964_a986a79960a24fca49411fe29dbd06227}} 
void \hyperlink{a10964_a986a79960a24fca49411fe29dbd06227}{slot\+Save\+Default} ()
\begin{DoxyCompactList}\small\item\em Slot called when user wants to save the given Save options as default. \end{DoxyCompactList}\item 
bool \hyperlink{a10964_a11ed556fd6c26569c6d61aab61df9133}{read\+File\+Options} (Q\+String \+\_\+filename, \hyperlink{a10968}{O\+F\+F\+Importer} \&\+\_\+importer)
\begin{DoxyCompactList}\small\item\em Before Parsing the actual file, read all features supported. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10964_ad4ed0da19c841cfde8c4ffc89eeeead1}\label{a10964_ad4ed0da19c841cfde8c4ffc89eeeead1}} 
bool \hyperlink{a10964_ad4ed0da19c841cfde8c4ffc89eeeead1}{read\+O\+F\+F\+File} (Q\+String \+\_\+filename, \hyperlink{a10968}{O\+F\+F\+Importer} \&\+\_\+importer)
\begin{DoxyCompactList}\small\item\em Read O\+FF file and parse it. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10964_abcad50ef45b89dde8418a2daa5606c1a}\label{a10964_abcad50ef45b89dde8418a2daa5606c1a}} 
bool \hyperlink{a10964_abcad50ef45b89dde8418a2daa5606c1a}{parse\+A\+S\+C\+II} (std\+::istream \&\+\_\+in, \hyperlink{a10968}{O\+F\+F\+Importer} \&\+\_\+importer, \hyperlink{a07048}{Data\+Type} \+\_\+type, Q\+String \&\+\_\+object\+Name)
\begin{DoxyCompactList}\small\item\em Parse ascii O\+FF file. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10964_a03ecc6e5dd51010647ae802cac43d272}\label{a10964_a03ecc6e5dd51010647ae802cac43d272}} 
bool \hyperlink{a10964_a03ecc6e5dd51010647ae802cac43d272}{parse\+Binary} (std\+::istream \&\+\_\+in, \hyperlink{a10968}{O\+F\+F\+Importer} \&\+\_\+importer, \hyperlink{a07048}{Data\+Type} \+\_\+type, Q\+String \&\+\_\+object\+Name)
\begin{DoxyCompactList}\small\item\em Parse binary O\+FF file. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10964_a8c65d84975d82e26f67f1e2aff0763cf}\label{a10964_a8c65d84975d82e26f67f1e2aff0763cf}} 
int \hyperlink{a10964_a8c65d84975d82e26f67f1e2aff0763cf}{get\+Color\+Type} (std\+::string \&\+\_\+line, bool \+\_\+tex\+Coords\+Available)
\begin{DoxyCompactList}\small\item\em Get color type. \end{DoxyCompactList}\item 
void \hyperlink{a10964_aa50d376a6007112172ded5f4bcf2d564}{update\+User\+Options} ()
\item 
\mbox{\Hypertarget{a10964_a9aafb5e3fe6bd17863b23ba7fcd40ca6}\label{a10964_a9aafb5e3fe6bd17863b23ba7fcd40ca6}} 
bool \hyperlink{a10964_a9aafb5e3fe6bd17863b23ba7fcd40ca6}{extended\+Face\+Color\+Test} (std\+::istream \&\+\_\+in, uint \+\_\+nV, uint \+\_\+nF, int \+\_\+nB) const
\begin{DoxyCompactList}\small\item\em Test if there are face color components (\+\_\+nV is the initial face valence) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10964_a3616472ef365d8e65be683a661908ca2}\label{a10964_a3616472ef365d8e65be683a661908ca2}} 
void {\bfseries read\+Value} (std\+::istream \&\+\_\+in, float \&\+\_\+value) const
\item 
\mbox{\Hypertarget{a10964_aaebb523fbb6b2730ca070feaa396338a}\label{a10964_aaebb523fbb6b2730ca070feaa396338a}} 
void {\bfseries read\+Value} (std\+::istream \&\+\_\+in, int \&\+\_\+value) const
\item 
\mbox{\Hypertarget{a10964_a56833f0dc8c0620bd912aab99607777f}\label{a10964_a56833f0dc8c0620bd912aab99607777f}} 
void {\bfseries read\+Value} (std\+::istream \&\+\_\+in, unsigned int \&\+\_\+value) const
\item 
\mbox{\Hypertarget{a10964_af564da2f4f57d42a2e68721024c8b582}\label{a10964_af564da2f4f57d42a2e68721024c8b582}} 
void {\bfseries write\+Value} (std\+::ostream \&\+\_\+out, int value) const
\item 
\mbox{\Hypertarget{a10964_ae384346f648d180b20c85acd47bcf3ee}\label{a10964_ae384346f648d180b20c85acd47bcf3ee}} 
void {\bfseries write\+Value} (std\+::ostream \&\+\_\+out, unsigned int value) const
\item 
\mbox{\Hypertarget{a10964_aed1a54a79a874f5d3e57d2c6a1289567}\label{a10964_aed1a54a79a874f5d3e57d2c6a1289567}} 
void {\bfseries write\+Value} (std\+::ostream \&\+\_\+out, float value) const
\item 
\mbox{\Hypertarget{a10964_a6ef74bed746ba4be35df0fc9ca016f8b}\label{a10964_a6ef74bed746ba4be35df0fc9ca016f8b}} 
void {\bfseries trim\+String} (std\+::string \&\+\_\+string)
\item 
bool \hyperlink{a10964_adf13be1cb01d19b649094c3864ebc60e}{get\+Clean\+Line} (std\+::istream \&ifs, std\+::string \&\+\_\+string, bool \+\_\+skip\+Empty\+Lines=true)
\begin{DoxyCompactList}\small\item\em Function to retrieve next line. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10964_ac6deafc50a4da34245f185806cc26d0b}\label{a10964_ac6deafc50a4da34245f185806cc26d0b}} 
bool \hyperlink{a10964_ac6deafc50a4da34245f185806cc26d0b}{check\+Degenerate\+Face} (const std\+::vector$<$ Vertex\+Handle $>$ \&\+\_\+v)
\begin{DoxyCompactList}\small\item\em Check for degenerate faces before adding them. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10964_a263ce62bda4f250e02bb164eb3b7e9ab}\label{a10964_a263ce62bda4f250e02bb164eb3b7e9ab}} 
{\footnotesize template$<$class MeshT $>$ }\\bool \hyperlink{a10964_a263ce62bda4f250e02bb164eb3b7e9ab}{write\+Mesh} (std\+::ostream \&\+\_\+out, MeshT \&\+\_\+mesh, \hyperlink{a07036}{Base\+Object} \&\+\_\+base\+Obj)
\begin{DoxyCompactList}\small\item\em Writer function. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10964_a1494f7a4df6ba3292af30886d9b0debb}\label{a10964_a1494f7a4df6ba3292af30886d9b0debb}} 
{\footnotesize template$<$class MeshT $>$ }\\bool \hyperlink{a10964_a1494f7a4df6ba3292af30886d9b0debb}{write\+Binary\+Data} (std\+::ostream \&\+\_\+out, MeshT \&\+\_\+mesh)
\begin{DoxyCompactList}\small\item\em Write binary mesh data to file. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10964_a13397ee6a391ffe8d6bdf0e12c6d27f7}\label{a10964_a13397ee6a391ffe8d6bdf0e12c6d27f7}} 
{\footnotesize template$<$class MeshT $>$ }\\bool \hyperlink{a10964_a13397ee6a391ffe8d6bdf0e12c6d27f7}{write\+A\+S\+C\+I\+I\+Data} (std\+::ostream \&\+\_\+out, MeshT \&\+\_\+mesh)
\begin{DoxyCompactList}\small\item\em Write A\+S\+C\+II mesh data to file. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10964_aa5d5734a8ccf56afda342bac35ba5abc}\label{a10964_aa5d5734a8ccf56afda342bac35ba5abc}} 
{\footnotesize template$<$class MeshT $>$ }\\void \hyperlink{a10964_aa5d5734a8ccf56afda342bac35ba5abc}{backup\+Texture\+Coordinates} (MeshT \&\+\_\+mesh)
\begin{DoxyCompactList}\small\item\em backup per vertex/face texture coordinates \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a10964_a557120b88e88b8a41cd1744ef4d7fbdd}\label{a10964_a557120b88e88b8a41cd1744ef4d7fbdd}} 
Q\+Widget $\ast$ {\bfseries load\+Options\+\_\+}
\item 
\mbox{\Hypertarget{a10964_aae277da4a9f7d1c797eb4198ecf60083}\label{a10964_aae277da4a9f7d1c797eb4198ecf60083}} 
Q\+Widget $\ast$ {\bfseries save\+Options\+\_\+}
\item 
\mbox{\Hypertarget{a10964_a9c38426225b811e41714ffba61d6d89e}\label{a10964_a9c38426225b811e41714ffba61d6d89e}} 
Q\+Check\+Box $\ast$ {\bfseries save\+Binary\+\_\+}
\item 
\mbox{\Hypertarget{a10964_ae1cc1decb2949d0136532b558884694e}\label{a10964_ae1cc1decb2949d0136532b558884694e}} 
Q\+Check\+Box $\ast$ {\bfseries save\+Vertex\+Color\+\_\+}
\item 
\mbox{\Hypertarget{a10964_a27407e2357da8ca6ea4e1082e8f578b7}\label{a10964_a27407e2357da8ca6ea4e1082e8f578b7}} 
Q\+Check\+Box $\ast$ {\bfseries save\+Face\+Color\+\_\+}
\item 
\mbox{\Hypertarget{a10964_af9584adf9ca4badca0cd44efa0a89cb7}\label{a10964_af9584adf9ca4badca0cd44efa0a89cb7}} 
Q\+Check\+Box $\ast$ {\bfseries save\+Alpha\+\_\+}
\item 
\mbox{\Hypertarget{a10964_a529f31ca3b0e74c070d38b6a3f0fbb95}\label{a10964_a529f31ca3b0e74c070d38b6a3f0fbb95}} 
Q\+Check\+Box $\ast$ {\bfseries save\+Normals\+\_\+}
\item 
\mbox{\Hypertarget{a10964_aec94c0ea33dd1f78d4b13bd6500dcc3f}\label{a10964_aec94c0ea33dd1f78d4b13bd6500dcc3f}} 
Q\+Check\+Box $\ast$ {\bfseries save\+Tex\+Coords\+\_\+}
\item 
\mbox{\Hypertarget{a10964_a8f708cd29e14b2a4259f39b5837ccf64}\label{a10964_a8f708cd29e14b2a4259f39b5837ccf64}} 
Q\+Label $\ast$ {\bfseries save\+Precision\+Label\+\_\+}
\item 
\mbox{\Hypertarget{a10964_a81e57e6f50f77d252cca7cebe5d333a3}\label{a10964_a81e57e6f50f77d252cca7cebe5d333a3}} 
Q\+Spin\+Box $\ast$ {\bfseries save\+Precision\+\_\+}
\item 
\mbox{\Hypertarget{a10964_a81d740ab10ee2f28149cb080dbb2a3ec}\label{a10964_a81d740ab10ee2f28149cb080dbb2a3ec}} 
Q\+Push\+Button $\ast$ {\bfseries save\+Default\+Button\+\_\+}
\item 
\mbox{\Hypertarget{a10964_a1eeb39d418320c481319de126dd756df}\label{a10964_a1eeb39d418320c481319de126dd756df}} 
Q\+Combo\+Box $\ast$ {\bfseries tri\+Mesh\+Handling\+\_\+}
\item 
\mbox{\Hypertarget{a10964_a4de27d4f0b365533f1159a60043ba7c5}\label{a10964_a4de27d4f0b365533f1159a60043ba7c5}} 
Q\+Check\+Box $\ast$ {\bfseries load\+Vertex\+Color\+\_\+}
\item 
\mbox{\Hypertarget{a10964_a5a6122ad69ed4809f90a36e358884595}\label{a10964_a5a6122ad69ed4809f90a36e358884595}} 
Q\+Check\+Box $\ast$ {\bfseries load\+Face\+Color\+\_\+}
\item 
\mbox{\Hypertarget{a10964_a997965460a2f1854b3bd03b248e1a9f6}\label{a10964_a997965460a2f1854b3bd03b248e1a9f6}} 
Q\+Check\+Box $\ast$ {\bfseries load\+Alpha\+\_\+}
\item 
\mbox{\Hypertarget{a10964_af55b3eeb7e55ce9222547110dea1d31c}\label{a10964_af55b3eeb7e55ce9222547110dea1d31c}} 
Q\+Check\+Box $\ast$ {\bfseries load\+Normals\+\_\+}
\item 
\mbox{\Hypertarget{a10964_ad390a4c1d43c36dd373341838f43244b}\label{a10964_ad390a4c1d43c36dd373341838f43244b}} 
Q\+Check\+Box $\ast$ {\bfseries load\+Tex\+Coords\+\_\+}
\item 
\mbox{\Hypertarget{a10964_af91dbec628089d36302ee53a91e606f9}\label{a10964_af91dbec628089d36302ee53a91e606f9}} 
Q\+Check\+Box $\ast$ {\bfseries load\+Check\+Manifold\+\_\+}
\item 
\mbox{\Hypertarget{a10964_a550143ef5452957472a238de508282c2}\label{a10964_a550143ef5452957472a238de508282c2}} 
Q\+Push\+Button $\ast$ {\bfseries load\+Default\+Button\+\_\+}
\item 
\mbox{\Hypertarget{a10964_ad2f8af992bac5118334c7d121bb98ad9}\label{a10964_ad2f8af992bac5118334c7d121bb98ad9}} 
unsigned int {\bfseries user\+Read\+Options\+\_\+}
\item 
\mbox{\Hypertarget{a10964_a4a6ac343ec56c6d61efc16e1795fae5c}\label{a10964_a4a6ac343ec56c6d61efc16e1795fae5c}} 
unsigned int {\bfseries user\+Write\+Options\+\_\+}
\item 
\mbox{\Hypertarget{a10964_a5ab827ffd61f7cf9d2f90912862ce36b}\label{a10964_a5ab827ffd61f7cf9d2f90912862ce36b}} 
bool {\bfseries force\+Triangle\+Mesh\+\_\+}
\item 
\mbox{\Hypertarget{a10964_a6ef961e17691a85caff0d84cf91fd389}\label{a10964_a6ef961e17691a85caff0d84cf91fd389}} 
bool {\bfseries force\+Poly\+Mesh\+\_\+}
\item 
\mbox{\Hypertarget{a10964_a37ae2d2c70badc5710aa922cd55be15b}\label{a10964_a37ae2d2c70badc5710aa922cd55be15b}} 
bool {\bfseries read\+Color\+Comp\+\_\+}
\item 
\mbox{\Hypertarget{a10964_a4b767c10cfd085086cfe2613b8db5c88}\label{a10964_a4b767c10cfd085086cfe2613b8db5c88}} 
O\+F\+F\+Importer\+::\+Object\+OptionsE {\bfseries trimesh\+Options\+\_\+}
\end{DoxyCompactItemize}


\subsection{Detailed Description}


Definition at line 73 of file File\+O\+F\+F.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{a10964_a8f7dd8b9f07e2fa8e1d47adeb8bf06b8}\label{a10964_a8f7dd8b9f07e2fa8e1d47adeb8bf06b8}} 
\index{File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}!description@{description}}
\index{description@{description}!File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}}
\subsubsection{\texorpdfstring{description()}{description()}}
{\footnotesize\ttfamily Q\+String File\+O\+F\+F\+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 124 of file File\+O\+F\+F.\+hh.

\mbox{\Hypertarget{a10964_adf13be1cb01d19b649094c3864ebc60e}\label{a10964_adf13be1cb01d19b649094c3864ebc60e}} 
\index{File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}!get\+Clean\+Line@{get\+Clean\+Line}}
\index{get\+Clean\+Line@{get\+Clean\+Line}!File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}}
\subsubsection{\texorpdfstring{get\+Clean\+Line()}{getCleanLine()}}
{\footnotesize\ttfamily bool File\+O\+F\+F\+Plugin\+::get\+Clean\+Line (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{ifs,  }\item[{std\+::string \&}]{\+\_\+string,  }\item[{bool}]{\+\_\+skip\+Empty\+Lines = {\ttfamily true} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Function to retrieve next line. 


\begin{DoxyParams}{Parameters}
{\em ifs} & The input stream we operate on \\
\hline
{\em \+\_\+string} & This will be the output string \\
\hline
{\em \+\_\+skip\+Empty\+Lines} & Skip empty/comment lines? If not, empty strings will be returned if comment or (remaining) line is empty \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\end{DoxyReturn}


Definition at line 160 of file File\+O\+F\+F.\+cc.

\mbox{\Hypertarget{a10964_a705c91a061c10dc766968c72adbdbcf2}\label{a10964_a705c91a061c10dc766968c72adbdbcf2}} 
\index{File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}!get\+Load\+Filters@{get\+Load\+Filters}}
\index{get\+Load\+Filters@{get\+Load\+Filters}!File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}}
\subsubsection{\texorpdfstring{get\+Load\+Filters()}{getLoadFilters()}}
{\footnotesize\ttfamily Q\+String File\+O\+F\+F\+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 127 of file File\+O\+F\+F.\+cc.

\mbox{\Hypertarget{a10964_a3e1c6c1e86325fe37c5db300995342dc}\label{a10964_a3e1c6c1e86325fe37c5db300995342dc}} 
\index{File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}!get\+Save\+Filters@{get\+Save\+Filters}}
\index{get\+Save\+Filters@{get\+Save\+Filters}!File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}}
\subsubsection{\texorpdfstring{get\+Save\+Filters()}{getSaveFilters()}}
{\footnotesize\ttfamily Q\+String File\+O\+F\+F\+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 133 of file File\+O\+F\+F.\+cc.

\mbox{\Hypertarget{a10964_a147d107d0ad0c86dcc080f44fa007b84}\label{a10964_a147d107d0ad0c86dcc080f44fa007b84}} 
\index{File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}!initialize\+Plugin@{initialize\+Plugin}}
\index{initialize\+Plugin@{initialize\+Plugin}!File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}}
\subsubsection{\texorpdfstring{initialize\+Plugin()}{initializePlugin()}}
{\footnotesize\ttfamily void File\+O\+F\+F\+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 96 of file File\+O\+F\+F.\+cc.

\mbox{\Hypertarget{a10964_a6d9a9aeed0074b2a7afa5ca5de0b212d}\label{a10964_a6d9a9aeed0074b2a7afa5ca5de0b212d}} 
\index{File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}!load\+Options\+Widget@{load\+Options\+Widget}}
\index{load\+Options\+Widget@{load\+Options\+Widget}!File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}}
\subsubsection{\texorpdfstring{load\+Options\+Widget()}{loadOptionsWidget()}}
{\footnotesize\ttfamily Q\+Widget $\ast$ File\+O\+F\+F\+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 1424 of file File\+O\+F\+F.\+cc.

\mbox{\Hypertarget{a10964_a863692ed3d9b301994c35cd948eb05ae}\label{a10964_a863692ed3d9b301994c35cd948eb05ae}} 
\index{File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}!name@{name}}
\index{name@{name}!File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}}
\subsubsection{\texorpdfstring{name()}{name()}}
{\footnotesize\ttfamily Q\+String File\+O\+F\+F\+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 123 of file File\+O\+F\+F.\+hh.

\mbox{\Hypertarget{a10964_a1a2104a4c27d80771e21db0fc5c971a9}\label{a10964_a1a2104a4c27d80771e21db0fc5c971a9}} 
\index{File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}!nogui\+Supported@{nogui\+Supported}}
\index{nogui\+Supported@{nogui\+Supported}!File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}}
\subsubsection{\texorpdfstring{nogui\+Supported()}{noguiSupported()}}
{\footnotesize\ttfamily void File\+O\+F\+F\+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 104 of file File\+O\+F\+F.\+hh.

\mbox{\Hypertarget{a10964_a11ed556fd6c26569c6d61aab61df9133}\label{a10964_a11ed556fd6c26569c6d61aab61df9133}} 
\index{File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}!read\+File\+Options@{read\+File\+Options}}
\index{read\+File\+Options@{read\+File\+Options}!File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}}
\subsubsection{\texorpdfstring{read\+File\+Options()}{readFileOptions()}}
{\footnotesize\ttfamily bool File\+O\+F\+F\+Plugin\+::read\+File\+Options (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+filename,  }\item[{\hyperlink{a10968}{O\+F\+F\+Importer} \&}]{\+\_\+importer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Before Parsing the actual file, read all features supported. 

\begin{DoxyRefDesc}{Todo}
\item[\hyperlink{a06164__todo000039}{Todo}]Implement extended coordinates \end{DoxyRefDesc}


\begin{DoxyRefDesc}{Todo}
\item[\hyperlink{a06164__todo000040}{Todo}]Implement any space dimension \end{DoxyRefDesc}


Definition at line 256 of file File\+O\+F\+F.\+cc.

\mbox{\Hypertarget{a10964_a95ec608c2577e8d114eddb821355f55b}\label{a10964_a95ec608c2577e8d114eddb821355f55b}} 
\index{File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}!save\+Options\+Widget@{save\+Options\+Widget}}
\index{save\+Options\+Widget@{save\+Options\+Widget}!File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}}
\subsubsection{\texorpdfstring{save\+Options\+Widget()}{saveOptionsWidget()}}
{\footnotesize\ttfamily Q\+Widget $\ast$ File\+O\+F\+F\+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 1367 of file File\+O\+F\+F.\+cc.

\mbox{\Hypertarget{a10964_a936ae59c6376b16fb8d66a3720723ae4}\label{a10964_a936ae59c6376b16fb8d66a3720723ae4}} 
\index{File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}!supported\+Type@{supported\+Type}}
\index{supported\+Type@{supported\+Type}!File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}}
\subsubsection{\texorpdfstring{supported\+Type()}{supportedType()}}
{\footnotesize\ttfamily \hyperlink{a07048}{Data\+Type} File\+O\+F\+F\+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 139 of file File\+O\+F\+F.\+cc.

\mbox{\Hypertarget{a10964_aa50d376a6007112172ded5f4bcf2d564}\label{a10964_aa50d376a6007112172ded5f4bcf2d564}} 
\index{File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}!update\+User\+Options@{update\+User\+Options}}
\index{update\+User\+Options@{update\+User\+Options}!File\+O\+F\+F\+Plugin@{File\+O\+F\+F\+Plugin}}
\subsubsection{\texorpdfstring{update\+User\+Options()}{updateUserOptions()}}
{\footnotesize\ttfamily void File\+O\+F\+F\+Plugin\+::update\+User\+Options (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}

Update user options depending on which options have been selected on the load dialog 

Definition at line 197 of file File\+O\+F\+F.\+cc.



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