\hypertarget{namespaceOpenMesh_1_1IO}{}\section{Open\+Mesh\+:\+:IO Namespace Reference}
\label{namespaceOpenMesh_1_1IO}\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{classOpenMesh_1_1IO_1_1__IOManager__}{\+\_\+\+I\+O\+Manager\+\_\+}
\item 
class \hyperlink{classOpenMesh_1_1IO_1_1__OBJReader__}{\+\_\+\+O\+B\+J\+Reader\+\_\+}
\item 
class \hyperlink{classOpenMesh_1_1IO_1_1__OBJWriter__}{\+\_\+\+O\+B\+J\+Writer\+\_\+}
\item 
class \hyperlink{classOpenMesh_1_1IO_1_1__OFFReader__}{\+\_\+\+O\+F\+F\+Reader\+\_\+}
\item 
class \hyperlink{classOpenMesh_1_1IO_1_1__OFFWriter__}{\+\_\+\+O\+F\+F\+Writer\+\_\+}
\item 
class \hyperlink{classOpenMesh_1_1IO_1_1__OMReader__}{\+\_\+\+O\+M\+Reader\+\_\+}
\item 
class \hyperlink{classOpenMesh_1_1IO_1_1__OMWriter__}{\+\_\+\+O\+M\+Writer\+\_\+}
\item 
class \hyperlink{classOpenMesh_1_1IO_1_1__PLYReader__}{\+\_\+\+P\+L\+Y\+Reader\+\_\+}
\item 
class \hyperlink{classOpenMesh_1_1IO_1_1__PLYWriter__}{\+\_\+\+P\+L\+Y\+Writer\+\_\+}
\item 
class \hyperlink{classOpenMesh_1_1IO_1_1__STLReader__}{\+\_\+\+S\+T\+L\+Reader\+\_\+}
\item 
class \hyperlink{classOpenMesh_1_1IO_1_1__STLWriter__}{\+\_\+\+S\+T\+L\+Writer\+\_\+}
\item 
class \hyperlink{classOpenMesh_1_1IO_1_1__VTKWriter__}{\+\_\+\+V\+T\+K\+Writer\+\_\+}
\item 
class \hyperlink{classOpenMesh_1_1IO_1_1BaseExporter}{Base\+Exporter}
\item 
class \hyperlink{classOpenMesh_1_1IO_1_1BaseImporter}{Base\+Importer}
\item 
class \hyperlink{classOpenMesh_1_1IO_1_1BaseReader}{Base\+Reader}
\item 
class \hyperlink{classOpenMesh_1_1IO_1_1BaseWriter}{Base\+Writer}
\item 
struct \hyperlink{structOpenMesh_1_1IO_1_1binary}{binary}
\item 
struct \hyperlink{structOpenMesh_1_1IO_1_1binary_3_01BaseSkin_1_1SkinWeights_01_4}{binary$<$ Base\+Skin\+::\+Skin\+Weights $>$}
\item 
struct \hyperlink{structOpenMesh_1_1IO_1_1binary_3_01MyData_01_4}{binary$<$ My\+Data $>$}
\item 
struct \hyperlink{structOpenMesh_1_1IO_1_1binary_3_01MyMap_01_4}{binary$<$ My\+Map $>$}
\item 
class \hyperlink{classOpenMesh_1_1IO_1_1ExporterT}{ExporterT}
\item 
struct \hyperlink{structOpenMesh_1_1IO_1_1Handle2Prop}{Handle2\+Prop}
\item 
struct \hyperlink{structOpenMesh_1_1IO_1_1Handle2Prop_3_01T_00_01FaceHandle_01_4}{Handle2\+Prop$<$ T, Face\+Handle $>$}
\item 
struct \hyperlink{structOpenMesh_1_1IO_1_1Handle2Prop_3_01T_00_01VertexHandle_01_4}{Handle2\+Prop$<$ T, Vertex\+Handle $>$}
\item 
class \hyperlink{classOpenMesh_1_1IO_1_1ImporterT}{ImporterT}
\item 
class \hyperlink{classOpenMesh_1_1IO_1_1Options}{Options}
\begin{DoxyCompactList}\small\item\em Set options for reader/writer modules. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classOpenMesh_1_1IO_1_1__IOManager__}{\+\_\+\+I\+O\+Manager\+\_\+} \& \hyperlink{namespaceOpenMesh_1_1IO_aa13c5f0fa15845cde1f11e6afe53f106}{I\+O\+Manager} ()
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a6c891985541460479bbc4e9525390cad}\label{namespaceOpenMesh_1_1IO_a6c891985541460479bbc4e9525390cad}} 
{\footnotesize template$<$typename T $>$ }\\size\+\_\+t {\bfseries store} (std\+::ostream \&\+\_\+os, const T \&\+\_\+val, O\+M\+Format\+::\+Chunk\+::\+Integer\+\_\+\+Size \+\_\+b, bool \+\_\+swap, t\+\_\+signed)
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_ae2b7128db63d1eef6f7b3e1e41cf9a7e}\label{namespaceOpenMesh_1_1IO_ae2b7128db63d1eef6f7b3e1e41cf9a7e}} 
{\footnotesize template$<$typename T $>$ }\\size\+\_\+t {\bfseries store} (std\+::ostream \&\+\_\+os, const T \&\+\_\+val, O\+M\+Format\+::\+Chunk\+::\+Integer\+\_\+\+Size \+\_\+b, bool \+\_\+swap, t\+\_\+unsigned)
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_ad5f1210700c0c8f114c479ee15fc15f5}\label{namespaceOpenMesh_1_1IO_ad5f1210700c0c8f114c479ee15fc15f5}} 
{\footnotesize template$<$typename T $>$ }\\size\+\_\+t {\bfseries restore} (std\+::istream \&\+\_\+is, T \&\+\_\+val, O\+M\+Format\+::\+Chunk\+::\+Integer\+\_\+\+Size \+\_\+b, bool \+\_\+swap, t\+\_\+signed)
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_ac98ca095e7f163cf25a36920597b5b85}\label{namespaceOpenMesh_1_1IO_ac98ca095e7f163cf25a36920597b5b85}} 
{\footnotesize template$<$typename T $>$ }\\size\+\_\+t {\bfseries restore} (std\+::istream \&\+\_\+is, T \&\+\_\+val, O\+M\+Format\+::\+Chunk\+::\+Integer\+\_\+\+Size \+\_\+b, bool \+\_\+swap, t\+\_\+unsigned)
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_aeee429bcc952a9445fd48e40164b064b}\label{namespaceOpenMesh_1_1IO_aeee429bcc952a9445fd48e40164b064b}} 
\hyperlink{classOpenMesh_1_1IO_1_1__OBJReader__}{\+\_\+\+O\+B\+J\+Reader\+\_\+} \& {\bfseries O\+B\+J\+Reader} ()
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a3a9c6303cd663c5c5ba1d7095b71f865}\label{namespaceOpenMesh_1_1IO_a3a9c6303cd663c5c5ba1d7095b71f865}} 
void {\bfseries trim\+String} (std\+::string \&\+\_\+string)
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_aac73732fa466576f73d2c8f0f48e2c27}\label{namespaceOpenMesh_1_1IO_aac73732fa466576f73d2c8f0f48e2c27}} 
void {\bfseries remove\+\_\+duplicated\+\_\+vertices} (Base\+Importer\+::\+V\+Handles \&\+\_\+indices)
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a0ffe4591554c97683a464c370b6f7f35}\label{namespaceOpenMesh_1_1IO_a0ffe4591554c97683a464c370b6f7f35}} 
\hyperlink{classOpenMesh_1_1IO_1_1__OFFReader__}{\+\_\+\+O\+F\+F\+Reader\+\_\+} \& {\bfseries O\+F\+F\+Reader} ()
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a61f06f6335750b184de80fe85852f86b}\label{namespaceOpenMesh_1_1IO_a61f06f6335750b184de80fe85852f86b}} 
\hyperlink{classOpenMesh_1_1IO_1_1__OMReader__}{\+\_\+\+O\+M\+Reader\+\_\+} \& {\bfseries O\+M\+Reader} ()
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_afc4660820e4eba27091d92f3061993fc}\label{namespaceOpenMesh_1_1IO_afc4660820e4eba27091d92f3061993fc}} 
\hyperlink{classOpenMesh_1_1IO_1_1__PLYReader__}{\+\_\+\+P\+L\+Y\+Reader\+\_\+} \& {\bfseries P\+L\+Y\+Reader} ()
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_ad8c7a638eb5d8d6078f1a91e63547204}\label{namespaceOpenMesh_1_1IO_ad8c7a638eb5d8d6078f1a91e63547204}} 
std\+::string {\bfseries get\+\_\+property\+\_\+name} (std\+::string \+\_\+string1, std\+::string \+\_\+string2)
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a2f2623970c020c722c0a9db6577f90bb}\label{namespaceOpenMesh_1_1IO_a2f2623970c020c722c0a9db6577f90bb}} 
\+\_\+\+P\+L\+Y\+Reader\+\_\+\+::\+Value\+Type {\bfseries get\+\_\+property\+\_\+type} (std\+::string \&\+\_\+string1, std\+::string \&\+\_\+string2)
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a261f8326e84759b9179662e275b084d1}\label{namespaceOpenMesh_1_1IO_a261f8326e84759b9179662e275b084d1}} 
\hyperlink{classOpenMesh_1_1IO_1_1__STLReader__}{\+\_\+\+S\+T\+L\+Reader\+\_\+} \& {\bfseries S\+T\+L\+Reader} ()
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a6bbc056b710a615d448b0ea68f099023}\label{namespaceOpenMesh_1_1IO_a6bbc056b710a615d448b0ea68f099023}} 
void {\bfseries trim\+Std\+String} (std\+::string \&\+\_\+string)
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a042c91cf7bbe7a6cf9ae6c410a1ca34c}\label{namespaceOpenMesh_1_1IO_a042c91cf7bbe7a6cf9ae6c410a1ca34c}} 
\hyperlink{classOpenMesh_1_1IO_1_1__OBJWriter__}{\+\_\+\+O\+B\+J\+Writer\+\_\+} \& {\bfseries O\+B\+J\+Writer} ()
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a82ae4a0bb6cc09e52d6a6f657f1dec6b}\label{namespaceOpenMesh_1_1IO_a82ae4a0bb6cc09e52d6a6f657f1dec6b}} 
\hyperlink{classOpenMesh_1_1IO_1_1__OFFWriter__}{\+\_\+\+O\+F\+F\+Writer\+\_\+} \& {\bfseries O\+F\+F\+Writer} ()
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_aa63b0175dff95b702b53f04b3d1524b3}\label{namespaceOpenMesh_1_1IO_aa63b0175dff95b702b53f04b3d1524b3}} 
\hyperlink{classOpenMesh_1_1IO_1_1__OMWriter__}{\+\_\+\+O\+M\+Writer\+\_\+} \& {\bfseries O\+M\+Writer} ()
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a9f9b89ef12414de6b58f7cda086c5f8e}\label{namespaceOpenMesh_1_1IO_a9f9b89ef12414de6b58f7cda086c5f8e}} 
\hyperlink{classOpenMesh_1_1IO_1_1__PLYWriter__}{\+\_\+\+P\+L\+Y\+Writer\+\_\+} \& {\bfseries P\+L\+Y\+Writer} ()
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a587bd975eb2820399a05af17e82abb5a}\label{namespaceOpenMesh_1_1IO_a587bd975eb2820399a05af17e82abb5a}} 
{\footnotesize template$<$typename T $>$ }\\const \hyperlink{classOpenMesh_1_1PropertyT}{PropertyT}$<$ T $>$ $\ast$ {\bfseries cast\+Property} (const \hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} $\ast$\+\_\+prop)
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a24ee555f152cb408cc4deb2839bfd0d5}\label{namespaceOpenMesh_1_1IO_a24ee555f152cb408cc4deb2839bfd0d5}} 
\hyperlink{classOpenMesh_1_1IO_1_1__STLWriter__}{\+\_\+\+S\+T\+L\+Writer\+\_\+} \& {\bfseries S\+T\+L\+Writer} ()
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a1ab988aa7047a5f425c87a56f315f39e}\label{namespaceOpenMesh_1_1IO_a1ab988aa7047a5f425c87a56f315f39e}} 
\hyperlink{classOpenMesh_1_1IO_1_1__VTKWriter__}{\+\_\+\+V\+T\+K\+Writer\+\_\+} \& {\bfseries V\+T\+K\+Writer} ()
\end{DoxyCompactItemize}
\begin{Indent}\textbf{ Mesh Reading / Writing}\par
{\em \hyperlink{structOption}{Option} for reader and writer modules. }\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$class Mesh $>$ }\\bool \hyperlink{namespaceOpenMesh_1_1IO_ac417960ec28ffdd7e7003a2b1ebb2d1c}{read\+\_\+mesh} (\hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} \&\+\_\+mesh, const std\+::string \&\+\_\+filename)
\begin{DoxyCompactList}\small\item\em Read a mesh from file \+\_\+filename. \end{DoxyCompactList}\item 
{\footnotesize template$<$class Mesh $>$ }\\bool \hyperlink{namespaceOpenMesh_1_1IO_ae7ba2707a88e6d9b64a5c1bfab0df061}{read\+\_\+mesh} (\hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} \&\+\_\+mesh, const std\+::string \&\+\_\+filename, \hyperlink{classOpenMesh_1_1IO_1_1Options}{Options} \&\+\_\+opt, bool \+\_\+clear=true)
\begin{DoxyCompactList}\small\item\em Read a mesh from file \+\_\+filename. \end{DoxyCompactList}\item 
{\footnotesize template$<$class Mesh $>$ }\\bool \hyperlink{namespaceOpenMesh_1_1IO_a0bcba9c50010ec3f16033b76e7f28154}{read\+\_\+mesh} (\hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} \&\+\_\+mesh, std\+::istream \&\+\_\+is, const std\+::string \&\+\_\+ext, \hyperlink{classOpenMesh_1_1IO_1_1Options}{Options} \&\+\_\+opt, bool \+\_\+clear=true)
\begin{DoxyCompactList}\small\item\em Read a mesh from file open std\+::istream. \end{DoxyCompactList}\item 
{\footnotesize template$<$class Mesh $>$ }\\bool \hyperlink{namespaceOpenMesh_1_1IO_a18286a792ebf896872f5e26182fc5c7b}{write\+\_\+mesh} (const \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} \&\+\_\+mesh, const std\+::string \&\+\_\+filename, \hyperlink{classOpenMesh_1_1IO_1_1Options}{Options} \+\_\+opt=\hyperlink{classOpenMesh_1_1IO_1_1Options_a9f4f797b08c045b611eaa6f8d149da21a7e68f74f3e555a90cc6b3ea1b5fb42ac}{Options\+::\+Default}, std\+::streamsize \+\_\+precision=6)
\begin{DoxyCompactList}\small\item\em Write a mesh to the file \+\_\+filename. \end{DoxyCompactList}\item 
{\footnotesize template$<$class Mesh $>$ }\\bool \hyperlink{namespaceOpenMesh_1_1IO_a15d23bba1a9d2439621938f5f3b07f43}{write\+\_\+mesh} (const \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} \&\+\_\+mesh, std\+::ostream \&\+\_\+os, const std\+::string \&\+\_\+ext, \hyperlink{classOpenMesh_1_1IO_1_1Options}{Options} \+\_\+opt=\hyperlink{classOpenMesh_1_1IO_1_1Options_a9f4f797b08c045b611eaa6f8d149da21a7e68f74f3e555a90cc6b3ea1b5fb42ac}{Options\+::\+Default}, std\+::streamsize \+\_\+precision=6)
\item 
{\footnotesize template$<$class Mesh $>$ }\\size\+\_\+t \hyperlink{namespaceOpenMesh_1_1IO_a0bd0cd8598ebc1e6fbd4061c8e65570b}{binary\+\_\+size} (const \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} \&\+\_\+mesh, const std\+::string \&\+\_\+ext, \hyperlink{classOpenMesh_1_1IO_1_1Options}{Options} \+\_\+opt=\hyperlink{classOpenMesh_1_1IO_1_1Options_a9f4f797b08c045b611eaa6f8d149da21a7e68f74f3e555a90cc6b3ea1b5fb42ac}{Options\+::\+Default})
\begin{DoxyCompactList}\small\item\em Get binary size of data. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_ac83ae47eda252ca59eaa0f22316bc142}\label{namespaceOpenMesh_1_1IO_ac83ae47eda252ca59eaa0f22316bc142}} 
\hyperlink{classOpenMesh_1_1IO_1_1__OBJReader__}{\+\_\+\+O\+B\+J\+Reader\+\_\+} {\bfseries \+\_\+\+\_\+\+O\+B\+J\+Reader\+Instance}
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a713d6dc17067507f6374d34b5fe48cc4}\label{namespaceOpenMesh_1_1IO_a713d6dc17067507f6374d34b5fe48cc4}} 
\hyperlink{classOpenMesh_1_1IO_1_1__OFFReader__}{\+\_\+\+O\+F\+F\+Reader\+\_\+} \hyperlink{namespaceOpenMesh_1_1IO_a713d6dc17067507f6374d34b5fe48cc4}{\+\_\+\+\_\+\+O\+F\+F\+Reader\+Instance}
\begin{DoxyCompactList}\small\item\em Declare the single entity of the O\+FF reader. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_aef50659ccf9991ab06fe5d2b4c82d014}\label{namespaceOpenMesh_1_1IO_aef50659ccf9991ab06fe5d2b4c82d014}} 
\hyperlink{classOpenMesh_1_1IO_1_1__OMReader__}{\+\_\+\+O\+M\+Reader\+\_\+} \hyperlink{namespaceOpenMesh_1_1IO_aef50659ccf9991ab06fe5d2b4c82d014}{\+\_\+\+\_\+\+O\+M\+Reader\+Instance}
\begin{DoxyCompactList}\small\item\em Declare the single entity of the OM reader. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a1e6f2c618fae88b8492e0368d93587c8}\label{namespaceOpenMesh_1_1IO_a1e6f2c618fae88b8492e0368d93587c8}} 
\hyperlink{classOpenMesh_1_1IO_1_1__PLYReader__}{\+\_\+\+P\+L\+Y\+Reader\+\_\+} \hyperlink{namespaceOpenMesh_1_1IO_a1e6f2c618fae88b8492e0368d93587c8}{\+\_\+\+\_\+\+P\+L\+Y\+Reader\+Instance}
\begin{DoxyCompactList}\small\item\em Declare the single entity of the P\+LY reader. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a0528676c0e2aa006892a169613c3bf42}\label{namespaceOpenMesh_1_1IO_a0528676c0e2aa006892a169613c3bf42}} 
\hyperlink{classOpenMesh_1_1IO_1_1__STLReader__}{\+\_\+\+S\+T\+L\+Reader\+\_\+} \hyperlink{namespaceOpenMesh_1_1IO_a0528676c0e2aa006892a169613c3bf42}{\+\_\+\+\_\+\+S\+T\+L\+Reader\+Instance}
\begin{DoxyCompactList}\small\item\em Declare the single entity of the S\+TL reader. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_ad7d48d59c5744757fa97d45f9a85fceb}\label{namespaceOpenMesh_1_1IO_ad7d48d59c5744757fa97d45f9a85fceb}} 
\hyperlink{classOpenMesh_1_1IO_1_1__OBJWriter__}{\+\_\+\+O\+B\+J\+Writer\+\_\+} \hyperlink{namespaceOpenMesh_1_1IO_ad7d48d59c5744757fa97d45f9a85fceb}{\+\_\+\+\_\+\+O\+B\+J\+Writerinstance}
\begin{DoxyCompactList}\small\item\em Declare the single entity of the O\+BJ writer. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_afed89868050213b1c1c2e70a8baa13ce}\label{namespaceOpenMesh_1_1IO_afed89868050213b1c1c2e70a8baa13ce}} 
\hyperlink{classOpenMesh_1_1IO_1_1__OFFWriter__}{\+\_\+\+O\+F\+F\+Writer\+\_\+} \hyperlink{namespaceOpenMesh_1_1IO_afed89868050213b1c1c2e70a8baa13ce}{\+\_\+\+\_\+\+O\+F\+F\+Writer\+Instance}
\begin{DoxyCompactList}\small\item\em Declare the single entity of the O\+FF writer. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a097df26d39f2771aa2fce672e3db6ed4}\label{namespaceOpenMesh_1_1IO_a097df26d39f2771aa2fce672e3db6ed4}} 
\hyperlink{classOpenMesh_1_1IO_1_1__OMWriter__}{\+\_\+\+O\+M\+Writer\+\_\+} \hyperlink{namespaceOpenMesh_1_1IO_a097df26d39f2771aa2fce672e3db6ed4}{\+\_\+\+\_\+\+O\+M\+Writer\+Instance}
\begin{DoxyCompactList}\small\item\em Declare the single entity of the OM writer. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_aac8a58fe0c97fc86e577e018f3ffaf00}\label{namespaceOpenMesh_1_1IO_aac8a58fe0c97fc86e577e018f3ffaf00}} 
\hyperlink{classOpenMesh_1_1IO_1_1__PLYWriter__}{\+\_\+\+P\+L\+Y\+Writer\+\_\+} \hyperlink{namespaceOpenMesh_1_1IO_aac8a58fe0c97fc86e577e018f3ffaf00}{\+\_\+\+\_\+\+P\+L\+Y\+Writer\+Instance}
\begin{DoxyCompactList}\small\item\em Declare the single entity of the P\+LY writer. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a8f6a85e0a2e0d129eedda09b86626edb}\label{namespaceOpenMesh_1_1IO_a8f6a85e0a2e0d129eedda09b86626edb}} 
\hyperlink{classOpenMesh_1_1IO_1_1__STLWriter__}{\+\_\+\+S\+T\+L\+Writer\+\_\+} {\bfseries \+\_\+\+\_\+\+S\+T\+L\+Writer\+Instance}
\item 
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_ad6402e5fdebb9d674bcca3d4c794ee60}\label{namespaceOpenMesh_1_1IO_ad6402e5fdebb9d674bcca3d4c794ee60}} 
\hyperlink{classOpenMesh_1_1IO_1_1__VTKWriter__}{\+\_\+\+V\+T\+K\+Writer\+\_\+} \hyperlink{namespaceOpenMesh_1_1IO_ad6402e5fdebb9d674bcca3d4c794ee60}{\+\_\+\+\_\+\+V\+T\+K\+Writerinstance}
\begin{DoxyCompactList}\small\item\em Declare the single entity of the O\+BJ writer. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Handling binary input/output.}
\label{_amgrp8d089846e5f48c65d84f84545ca3b258}%
These functions take care of swapping bytes to get the right \hyperlink{classOpenMesh_1_1Endian}{Endian}. \begin{DoxyCompactItemize}
\item 
typedef unsigned char \hyperlink{namespaceOpenMesh_1_1IO_a84abcdac3919ac323a51197c45c30ce7}{uchar}
\item 
typedef unsigned short \hyperlink{namespaceOpenMesh_1_1IO_aed5112de9626b0be282b40a107b77329}{ushort}
\item 
typedef unsigned long \hyperlink{namespaceOpenMesh_1_1IO_aac51e67d7d32b4a89d511e43544b5d1a}{ulong}
\item 
typedef signed char \hyperlink{namespaceOpenMesh_1_1IO_a1cb477d40529d6e99e0853d691ed4ae9}{int8\+\_\+t}
\item 
typedef unsigned char \hyperlink{namespaceOpenMesh_1_1IO_afa0a8afc6a9ca87786b10012faccdb5b}{uint8\+\_\+t}
\item 
typedef short \hyperlink{namespaceOpenMesh_1_1IO_a2a0a034c6ae23bd0e2e279ca7690a2fd}{int16\+\_\+t}
\item 
typedef unsigned short \hyperlink{namespaceOpenMesh_1_1IO_add641b2e5971344cf97af07f2b1885ac}{uint16\+\_\+t}
\item 
typedef int \hyperlink{namespaceOpenMesh_1_1IO_af881f277ad048474e3d995a67a31b062}{int32\+\_\+t}
\item 
typedef unsigned int \hyperlink{namespaceOpenMesh_1_1IO_a99140b155bf76529ccd11ee39020201a}{uint32\+\_\+t}
\item 
typedef long long \hyperlink{namespaceOpenMesh_1_1IO_ad391d2b6a9e9cd76197d08e4b4534567}{int64\+\_\+t}
\item 
typedef unsigned long long \hyperlink{namespaceOpenMesh_1_1IO_a90bf8e9b73be46f14eb9407679d90179}{uint64\+\_\+t}
\item 
typedef float \hyperlink{namespaceOpenMesh_1_1IO_adf6fa7dde897f1e39e9047f9035bfe7a}{float32\+\_\+t}
\item 
typedef double \hyperlink{namespaceOpenMesh_1_1IO_a437122241c4e1e58d88a7520249fb286}{float64\+\_\+t}
\item 
typedef \hyperlink{namespaceOpenMesh_1_1IO_afa0a8afc6a9ca87786b10012faccdb5b}{uint8\+\_\+t} \hyperlink{namespaceOpenMesh_1_1IO_a2a140b5cbe91a0072d5b4d1da68e4190}{rgb\+\_\+t}\mbox{[}3\mbox{]}
\item 
typedef \hyperlink{namespaceOpenMesh_1_1IO_afa0a8afc6a9ca87786b10012faccdb5b}{uint8\+\_\+t} \hyperlink{namespaceOpenMesh_1_1IO_a3dfc456791ee5d8699997d585f10b4f7}{rgba\+\_\+t}\mbox{[}4\mbox{]}
\item 
short int \hyperlink{namespaceOpenMesh_1_1IO_a0624f19c95f466ea4e8ac0f725add9ee}{read\+\_\+short} (F\+I\+LE $\ast$\+\_\+in, bool \+\_\+swap=false)
\item 
int \hyperlink{namespaceOpenMesh_1_1IO_a75ddd1bb09930aaaccafd6f5afc3e8cb}{read\+\_\+int} (F\+I\+LE $\ast$\+\_\+in, bool \+\_\+swap=false)
\item 
float \hyperlink{namespaceOpenMesh_1_1IO_a20f780795d3d78da83e9c7fb5a6d078a}{read\+\_\+float} (F\+I\+LE $\ast$\+\_\+in, bool \+\_\+swap=false)
\item 
double \hyperlink{namespaceOpenMesh_1_1IO_aed6e745a43c8b7216ed5d025e5f444a3}{read\+\_\+double} (F\+I\+LE $\ast$\+\_\+in, bool \+\_\+swap=false)
\item 
short int \hyperlink{namespaceOpenMesh_1_1IO_afdac9f17749663acf382236eca1e79ac}{read\+\_\+short} (std\+::istream \&\+\_\+in, bool \+\_\+swap=false)
\item 
int \hyperlink{namespaceOpenMesh_1_1IO_a4dacbd0c451e7e23d7b89e365b83e20f}{read\+\_\+int} (std\+::istream \&\+\_\+in, bool \+\_\+swap=false)
\item 
float \hyperlink{namespaceOpenMesh_1_1IO_a448dc5e7ff410bf023d902235f4f6509}{read\+\_\+float} (std\+::istream \&\+\_\+in, bool \+\_\+swap=false)
\item 
double \hyperlink{namespaceOpenMesh_1_1IO_af5949bfdc3e11c558c9c24905b0b31b6}{read\+\_\+double} (std\+::istream \&\+\_\+in, bool \+\_\+swap=false)
\item 
void \hyperlink{namespaceOpenMesh_1_1IO_a7001f05c3b1aa725cfbdf306a6e5cdaa}{write\+\_\+short} (short int \+\_\+i, F\+I\+LE $\ast$\+\_\+out, bool \+\_\+swap=false)
\item 
void \hyperlink{namespaceOpenMesh_1_1IO_a3430c109c16cb93ce20ec04848907e30}{write\+\_\+int} (int \+\_\+i, F\+I\+LE $\ast$\+\_\+out, bool \+\_\+swap=false)
\item 
void \hyperlink{namespaceOpenMesh_1_1IO_afb252a52391827e4615ab36044ff124e}{write\+\_\+float} (float \+\_\+f, F\+I\+LE $\ast$\+\_\+out, bool \+\_\+swap=false)
\item 
void \hyperlink{namespaceOpenMesh_1_1IO_a4166b3ec8bf0e2ea692c1a25b7cf691f}{write\+\_\+double} (double \+\_\+d, F\+I\+LE $\ast$\+\_\+out, bool \+\_\+swap=false)
\item 
void \hyperlink{namespaceOpenMesh_1_1IO_a0cbd7b5564f09b8474e40c64ccbf69c4}{write\+\_\+short} (short int \+\_\+i, std\+::ostream \&\+\_\+out, bool \+\_\+swap=false)
\item 
void \hyperlink{namespaceOpenMesh_1_1IO_ac26ad91b0667616d47d6a3085c2b71ad}{write\+\_\+int} (int \+\_\+i, std\+::ostream \&\+\_\+out, bool \+\_\+swap=false)
\item 
void \hyperlink{namespaceOpenMesh_1_1IO_a61b4b304e867dc651e188f5439d06ed6}{write\+\_\+float} (float \+\_\+f, std\+::ostream \&\+\_\+out, bool \+\_\+swap=false)
\item 
void \hyperlink{namespaceOpenMesh_1_1IO_aac9d5af189b996e6732c617eb19a2c22}{write\+\_\+double} (double \+\_\+d, std\+::ostream \&\+\_\+out, bool \+\_\+swap=false)
\item 
{\footnotesize template$<$size\+\_\+t N$>$ }\\void \hyperlink{namespaceOpenMesh_1_1IO_aa4fe1101edee9db0b0f7de1484b16567}{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+N} (\hyperlink{namespaceOpenMesh_1_1IO_afa0a8afc6a9ca87786b10012faccdb5b}{uint8\+\_\+t} $\ast$\+\_\+val)
\item 
{\footnotesize template$<$$>$ }\\void \hyperlink{namespaceOpenMesh_1_1IO_a665ae0d82b5f75ad229ceadeab294f85}{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 1 $>$} (\hyperlink{namespaceOpenMesh_1_1IO_afa0a8afc6a9ca87786b10012faccdb5b}{uint8\+\_\+t} $\ast$)
\item 
{\footnotesize template$<$$>$ }\\void \hyperlink{namespaceOpenMesh_1_1IO_add1faa1d7290b6b5945b93f8cf85f4aa}{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 2 $>$} (\hyperlink{namespaceOpenMesh_1_1IO_afa0a8afc6a9ca87786b10012faccdb5b}{uint8\+\_\+t} $\ast$\+\_\+val)
\item 
{\footnotesize template$<$$>$ }\\void \hyperlink{namespaceOpenMesh_1_1IO_ab635e08edc313822f3f8a982eae7d47e}{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 4 $>$} (\hyperlink{namespaceOpenMesh_1_1IO_afa0a8afc6a9ca87786b10012faccdb5b}{uint8\+\_\+t} $\ast$\+\_\+val)
\item 
{\footnotesize template$<$$>$ }\\void \hyperlink{namespaceOpenMesh_1_1IO_a7ff7637b99211fa04d6dc73b6e7363c1}{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 8 $>$} (\hyperlink{namespaceOpenMesh_1_1IO_afa0a8afc6a9ca87786b10012faccdb5b}{uint8\+\_\+t} $\ast$\+\_\+val)
\item 
{\footnotesize template$<$$>$ }\\void \hyperlink{namespaceOpenMesh_1_1IO_a85602015e1e476bbbb58aaa943e27ad4}{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 12 $>$} (\hyperlink{namespaceOpenMesh_1_1IO_afa0a8afc6a9ca87786b10012faccdb5b}{uint8\+\_\+t} $\ast$\+\_\+val)
\item 
{\footnotesize template$<$$>$ }\\void \hyperlink{namespaceOpenMesh_1_1IO_a390ba76430e5f0d5ede42f5c6947c605}{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 16 $>$} (\hyperlink{namespaceOpenMesh_1_1IO_afa0a8afc6a9ca87786b10012faccdb5b}{uint8\+\_\+t} $\ast$\+\_\+val)
\item 
{\footnotesize template$<$typename T $>$ }\\T $\ast$ \hyperlink{namespaceOpenMesh_1_1IO_ac2aa5537be67b342cda9c70b1a838e6a}{reverse\+\_\+byte\+\_\+order} (T $\ast$t)
\item 
void \hyperlink{namespaceOpenMesh_1_1IO_a3e126a3b24ffb22ed44bff8fe1c7117c}{compile\+\_\+time\+\_\+error\+\_\+\+\_\+no\+\_\+fundamental\+\_\+type} ()
\item 
{\footnotesize template$<$typename T $>$ }\\T \& \hyperlink{namespaceOpenMesh_1_1IO_a951cbe1d4c36ef10777553a88c9292d6}{reverse\+\_\+byte\+\_\+order} (T \&\+\_\+t)
\item 
{\footnotesize template$<$$>$ }\\bool \& \hyperlink{namespaceOpenMesh_1_1IO_a50b05a5733efef1d67754f9ce8769e55}{reverse\+\_\+byte\+\_\+order} (bool \&\+\_\+t)
\item 
{\footnotesize template$<$$>$ }\\char \& \hyperlink{namespaceOpenMesh_1_1IO_a280a6ee2676bf9420631b34f4daf62fe}{reverse\+\_\+byte\+\_\+order} (char \&\+\_\+t)
\item 
{\footnotesize template$<$$>$ }\\\hyperlink{namespaceOpenMesh_1_1IO_a84abcdac3919ac323a51197c45c30ce7}{uchar} \& \hyperlink{namespaceOpenMesh_1_1IO_a4820f98582e7b78c405154714b72171a}{reverse\+\_\+byte\+\_\+order} (\hyperlink{namespaceOpenMesh_1_1IO_a84abcdac3919ac323a51197c45c30ce7}{uchar} \&\+\_\+t)
\item 
{\footnotesize template$<$typename T $>$ }\\T \hyperlink{namespaceOpenMesh_1_1IO_ae936bf1ad8ab108b931de920b5748817}{reverse\+\_\+byte\+\_\+order} (const T \&a)
\item 
{\footnotesize template$<$typename T $>$ }\\bool \hyperlink{namespaceOpenMesh_1_1IO_afadc77f8b3e81138828deba328e65421}{is\+\_\+streamable} (void)
\item 
{\footnotesize template$<$typename T $>$ }\\bool \hyperlink{namespaceOpenMesh_1_1IO_a7676df8e34bbf86a2113dcb4402cc315}{is\+\_\+streamable} (const T \&)
\item 
{\footnotesize template$<$typename T $>$ }\\size\+\_\+t \hyperlink{namespaceOpenMesh_1_1IO_a787a7735700a12801c8a505f2c605681}{size\+\_\+of} (const T \&\+\_\+v)
\item 
{\footnotesize template$<$typename T $>$ }\\size\+\_\+t \hyperlink{namespaceOpenMesh_1_1IO_ad8390aa99222173319cc40a28be1bbbb}{size\+\_\+of} (void)
\item 
{\footnotesize template$<$typename T $>$ }\\size\+\_\+t \hyperlink{namespaceOpenMesh_1_1IO_a1f3c51bb7b0781f15a9f578059ed4e51}{store} (std\+::ostream \&\+\_\+os, const T \&\+\_\+v, bool \+\_\+swap=false)
\item 
{\footnotesize template$<$typename T $>$ }\\size\+\_\+t \hyperlink{namespaceOpenMesh_1_1IO_ae65ee571a8707c7f87cbf8d175b9329b}{restore} (std\+::istream \&\+\_\+is, T \&\+\_\+v, bool \+\_\+swap=false)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
This namespace contains functions for reading and writing polygonal meshes and a list of supported file formats. 

\subsection{Typedef Documentation}
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_adf6fa7dde897f1e39e9047f9035bfe7a}\label{namespaceOpenMesh_1_1IO_adf6fa7dde897f1e39e9047f9035bfe7a}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!float32\+\_\+t@{float32\+\_\+t}}
\index{float32\+\_\+t@{float32\+\_\+t}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{float32\+\_\+t}{float32\_t}}
{\footnotesize\ttfamily typedef float \hyperlink{namespaceOpenMesh_1_1IO_adf6fa7dde897f1e39e9047f9035bfe7a}{Open\+Mesh\+::\+I\+O\+::float32\+\_\+t}}

Binary read a {\ttfamily short} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true 

Definition at line 92 of file S\+R\+\_\+types.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a437122241c4e1e58d88a7520249fb286}\label{namespaceOpenMesh_1_1IO_a437122241c4e1e58d88a7520249fb286}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!float64\+\_\+t@{float64\+\_\+t}}
\index{float64\+\_\+t@{float64\+\_\+t}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{float64\+\_\+t}{float64\_t}}
{\footnotesize\ttfamily typedef double \hyperlink{namespaceOpenMesh_1_1IO_a437122241c4e1e58d88a7520249fb286}{Open\+Mesh\+::\+I\+O\+::float64\+\_\+t}}

Binary read a {\ttfamily short} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true 

Definition at line 93 of file S\+R\+\_\+types.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a2a0a034c6ae23bd0e2e279ca7690a2fd}\label{namespaceOpenMesh_1_1IO_a2a0a034c6ae23bd0e2e279ca7690a2fd}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!int16\+\_\+t@{int16\+\_\+t}}
\index{int16\+\_\+t@{int16\+\_\+t}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{int16\+\_\+t}{int16\_t}}
{\footnotesize\ttfamily typedef short \hyperlink{namespaceOpenMesh_1_1IO_a2a0a034c6ae23bd0e2e279ca7690a2fd}{Open\+Mesh\+::\+I\+O\+::int16\+\_\+t}}

Binary read a {\ttfamily short} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true 

Definition at line 81 of file S\+R\+\_\+types.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_af881f277ad048474e3d995a67a31b062}\label{namespaceOpenMesh_1_1IO_af881f277ad048474e3d995a67a31b062}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!int32\+\_\+t@{int32\+\_\+t}}
\index{int32\+\_\+t@{int32\+\_\+t}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{int32\+\_\+t}{int32\_t}}
{\footnotesize\ttfamily typedef int \hyperlink{namespaceOpenMesh_1_1IO_af881f277ad048474e3d995a67a31b062}{Open\+Mesh\+::\+I\+O\+::int32\+\_\+t}}

Binary read a {\ttfamily short} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true 

Definition at line 85 of file S\+R\+\_\+types.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_ad391d2b6a9e9cd76197d08e4b4534567}\label{namespaceOpenMesh_1_1IO_ad391d2b6a9e9cd76197d08e4b4534567}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!int64\+\_\+t@{int64\+\_\+t}}
\index{int64\+\_\+t@{int64\+\_\+t}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{int64\+\_\+t}{int64\_t}}
{\footnotesize\ttfamily typedef long long \hyperlink{namespaceOpenMesh_1_1IO_ad391d2b6a9e9cd76197d08e4b4534567}{Open\+Mesh\+::\+I\+O\+::int64\+\_\+t}}

Binary read a {\ttfamily short} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true 

Definition at line 89 of file S\+R\+\_\+types.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a1cb477d40529d6e99e0853d691ed4ae9}\label{namespaceOpenMesh_1_1IO_a1cb477d40529d6e99e0853d691ed4ae9}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!int8\+\_\+t@{int8\+\_\+t}}
\index{int8\+\_\+t@{int8\+\_\+t}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{int8\+\_\+t}{int8\_t}}
{\footnotesize\ttfamily typedef signed char \hyperlink{namespaceOpenMesh_1_1IO_a1cb477d40529d6e99e0853d691ed4ae9}{Open\+Mesh\+::\+I\+O\+::int8\+\_\+t}}

Binary read a {\ttfamily short} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true 

Definition at line 80 of file S\+R\+\_\+types.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a2a140b5cbe91a0072d5b4d1da68e4190}\label{namespaceOpenMesh_1_1IO_a2a140b5cbe91a0072d5b4d1da68e4190}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!rgb\+\_\+t@{rgb\+\_\+t}}
\index{rgb\+\_\+t@{rgb\+\_\+t}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{rgb\+\_\+t}{rgb\_t}}
{\footnotesize\ttfamily typedef \hyperlink{namespaceOpenMesh_1_1IO_afa0a8afc6a9ca87786b10012faccdb5b}{uint8\+\_\+t} Open\+Mesh\+::\+I\+O\+::rgb\+\_\+t\mbox{[}3\mbox{]}}

Binary read a {\ttfamily short} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true 

Definition at line 95 of file S\+R\+\_\+types.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a3dfc456791ee5d8699997d585f10b4f7}\label{namespaceOpenMesh_1_1IO_a3dfc456791ee5d8699997d585f10b4f7}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!rgba\+\_\+t@{rgba\+\_\+t}}
\index{rgba\+\_\+t@{rgba\+\_\+t}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{rgba\+\_\+t}{rgba\_t}}
{\footnotesize\ttfamily typedef \hyperlink{namespaceOpenMesh_1_1IO_afa0a8afc6a9ca87786b10012faccdb5b}{uint8\+\_\+t} Open\+Mesh\+::\+I\+O\+::rgba\+\_\+t\mbox{[}4\mbox{]}}

Binary read a {\ttfamily short} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true 

Definition at line 96 of file S\+R\+\_\+types.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a84abcdac3919ac323a51197c45c30ce7}\label{namespaceOpenMesh_1_1IO_a84abcdac3919ac323a51197c45c30ce7}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!uchar@{uchar}}
\index{uchar@{uchar}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{uchar}{uchar}}
{\footnotesize\ttfamily typedef unsigned char \hyperlink{namespaceOpenMesh_1_1IO_a84abcdac3919ac323a51197c45c30ce7}{Open\+Mesh\+::\+I\+O\+::uchar}}

Binary read a {\ttfamily short} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true 

Definition at line 76 of file S\+R\+\_\+types.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_add641b2e5971344cf97af07f2b1885ac}\label{namespaceOpenMesh_1_1IO_add641b2e5971344cf97af07f2b1885ac}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!uint16\+\_\+t@{uint16\+\_\+t}}
\index{uint16\+\_\+t@{uint16\+\_\+t}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{uint16\+\_\+t}{uint16\_t}}
{\footnotesize\ttfamily typedef unsigned short \hyperlink{namespaceOpenMesh_1_1IO_add641b2e5971344cf97af07f2b1885ac}{Open\+Mesh\+::\+I\+O\+::uint16\+\_\+t}}

Binary read a {\ttfamily short} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true 

Definition at line 81 of file S\+R\+\_\+types.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a99140b155bf76529ccd11ee39020201a}\label{namespaceOpenMesh_1_1IO_a99140b155bf76529ccd11ee39020201a}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!uint32\+\_\+t@{uint32\+\_\+t}}
\index{uint32\+\_\+t@{uint32\+\_\+t}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{uint32\+\_\+t}{uint32\_t}}
{\footnotesize\ttfamily typedef unsigned int \hyperlink{namespaceOpenMesh_1_1IO_a99140b155bf76529ccd11ee39020201a}{Open\+Mesh\+::\+I\+O\+::uint32\+\_\+t}}

Binary read a {\ttfamily short} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true 

Definition at line 85 of file S\+R\+\_\+types.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a90bf8e9b73be46f14eb9407679d90179}\label{namespaceOpenMesh_1_1IO_a90bf8e9b73be46f14eb9407679d90179}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!uint64\+\_\+t@{uint64\+\_\+t}}
\index{uint64\+\_\+t@{uint64\+\_\+t}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{uint64\+\_\+t}{uint64\_t}}
{\footnotesize\ttfamily typedef unsigned long long \hyperlink{namespaceOpenMesh_1_1IO_a90bf8e9b73be46f14eb9407679d90179}{Open\+Mesh\+::\+I\+O\+::uint64\+\_\+t}}

Binary read a {\ttfamily short} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true 

Definition at line 89 of file S\+R\+\_\+types.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_afa0a8afc6a9ca87786b10012faccdb5b}\label{namespaceOpenMesh_1_1IO_afa0a8afc6a9ca87786b10012faccdb5b}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!uint8\+\_\+t@{uint8\+\_\+t}}
\index{uint8\+\_\+t@{uint8\+\_\+t}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{uint8\+\_\+t}{uint8\_t}}
{\footnotesize\ttfamily typedef unsigned char \hyperlink{namespaceOpenMesh_1_1IO_afa0a8afc6a9ca87786b10012faccdb5b}{Open\+Mesh\+::\+I\+O\+::uint8\+\_\+t}}

Binary read a {\ttfamily short} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true 

Definition at line 80 of file S\+R\+\_\+types.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_aac51e67d7d32b4a89d511e43544b5d1a}\label{namespaceOpenMesh_1_1IO_aac51e67d7d32b4a89d511e43544b5d1a}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!ulong@{ulong}}
\index{ulong@{ulong}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{ulong}{ulong}}
{\footnotesize\ttfamily typedef unsigned long \hyperlink{namespaceOpenMesh_1_1IO_aac51e67d7d32b4a89d511e43544b5d1a}{Open\+Mesh\+::\+I\+O\+::ulong}}

Binary read a {\ttfamily short} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true 

Definition at line 78 of file S\+R\+\_\+types.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_aed5112de9626b0be282b40a107b77329}\label{namespaceOpenMesh_1_1IO_aed5112de9626b0be282b40a107b77329}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!ushort@{ushort}}
\index{ushort@{ushort}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{ushort}{ushort}}
{\footnotesize\ttfamily typedef unsigned short \hyperlink{namespaceOpenMesh_1_1IO_aed5112de9626b0be282b40a107b77329}{Open\+Mesh\+::\+I\+O\+::ushort}}

Binary read a {\ttfamily short} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true 

Definition at line 77 of file S\+R\+\_\+types.\+hh.



\subsection{Function Documentation}
\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_aa4fe1101edee9db0b0f7de1484b16567}\label{namespaceOpenMesh_1_1IO_aa4fe1101edee9db0b0f7de1484b16567}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+N@{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+N}}
\index{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+N@{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+N}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N()}{\_reverse\_byte\_order\_N()}}
{\footnotesize\ttfamily template$<$size\+\_\+t N$>$ \\
void Open\+Mesh\+::\+I\+O\+::\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+N (\begin{DoxyParamCaption}\item[{\hyperlink{namespaceOpenMesh_1_1IO_afa0a8afc6a9ca87786b10012faccdb5b}{uint8\+\_\+t} $\ast$}]{\+\_\+val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

this does not compile for g++3.4 and higher, hence we comment the function body which will result in a linker error \mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a665ae0d82b5f75ad229ceadeab294f85}\label{namespaceOpenMesh_1_1IO_a665ae0d82b5f75ad229ceadeab294f85}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 1 $>$@{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 1 $>$}}
\index{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 1 $>$@{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 1 $>$}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 1 $>$()}{\_reverse\_byte\_order\_N< 1 >()}}
{\footnotesize\ttfamily template$<$$>$ \\
void \hyperlink{namespaceOpenMesh_1_1IO_aa4fe1101edee9db0b0f7de1484b16567}{Open\+Mesh\+::\+I\+O\+::\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+N}$<$ 1 $>$ (\begin{DoxyParamCaption}\item[{\hyperlink{namespaceOpenMesh_1_1IO_afa0a8afc6a9ca87786b10012faccdb5b}{uint8\+\_\+t} $\ast$}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

this does not compile for g++3.4 and higher, hence we comment the function body which will result in a linker error 

Definition at line 95 of file S\+R\+\_\+rbo.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a85602015e1e476bbbb58aaa943e27ad4}\label{namespaceOpenMesh_1_1IO_a85602015e1e476bbbb58aaa943e27ad4}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 12 $>$@{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 12 $>$}}
\index{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 12 $>$@{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 12 $>$}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 12 $>$()}{\_reverse\_byte\_order\_N< 12 >()}}
{\footnotesize\ttfamily template$<$$>$ \\
void \hyperlink{namespaceOpenMesh_1_1IO_aa4fe1101edee9db0b0f7de1484b16567}{Open\+Mesh\+::\+I\+O\+::\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+N}$<$ 12 $>$ (\begin{DoxyParamCaption}\item[{\hyperlink{namespaceOpenMesh_1_1IO_afa0a8afc6a9ca87786b10012faccdb5b}{uint8\+\_\+t} $\ast$}]{\+\_\+val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

this does not compile for g++3.4 and higher, hence we comment the function body which will result in a linker error 

Definition at line 124 of file S\+R\+\_\+rbo.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a390ba76430e5f0d5ede42f5c6947c605}\label{namespaceOpenMesh_1_1IO_a390ba76430e5f0d5ede42f5c6947c605}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 16 $>$@{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 16 $>$}}
\index{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 16 $>$@{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 16 $>$}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 16 $>$()}{\_reverse\_byte\_order\_N< 16 >()}}
{\footnotesize\ttfamily template$<$$>$ \\
void \hyperlink{namespaceOpenMesh_1_1IO_aa4fe1101edee9db0b0f7de1484b16567}{Open\+Mesh\+::\+I\+O\+::\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+N}$<$ 16 $>$ (\begin{DoxyParamCaption}\item[{\hyperlink{namespaceOpenMesh_1_1IO_afa0a8afc6a9ca87786b10012faccdb5b}{uint8\+\_\+t} $\ast$}]{\+\_\+val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

this does not compile for g++3.4 and higher, hence we comment the function body which will result in a linker error 

Definition at line 136 of file S\+R\+\_\+rbo.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_add1faa1d7290b6b5945b93f8cf85f4aa}\label{namespaceOpenMesh_1_1IO_add1faa1d7290b6b5945b93f8cf85f4aa}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 2 $>$@{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 2 $>$}}
\index{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 2 $>$@{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 2 $>$}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 2 $>$()}{\_reverse\_byte\_order\_N< 2 >()}}
{\footnotesize\ttfamily template$<$$>$ \\
void \hyperlink{namespaceOpenMesh_1_1IO_aa4fe1101edee9db0b0f7de1484b16567}{Open\+Mesh\+::\+I\+O\+::\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+N}$<$ 2 $>$ (\begin{DoxyParamCaption}\item[{\hyperlink{namespaceOpenMesh_1_1IO_afa0a8afc6a9ca87786b10012faccdb5b}{uint8\+\_\+t} $\ast$}]{\+\_\+val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

this does not compile for g++3.4 and higher, hence we comment the function body which will result in a linker error 

Definition at line 99 of file S\+R\+\_\+rbo.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_ab635e08edc313822f3f8a982eae7d47e}\label{namespaceOpenMesh_1_1IO_ab635e08edc313822f3f8a982eae7d47e}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 4 $>$@{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 4 $>$}}
\index{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 4 $>$@{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 4 $>$}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 4 $>$()}{\_reverse\_byte\_order\_N< 4 >()}}
{\footnotesize\ttfamily template$<$$>$ \\
void \hyperlink{namespaceOpenMesh_1_1IO_aa4fe1101edee9db0b0f7de1484b16567}{Open\+Mesh\+::\+I\+O\+::\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+N}$<$ 4 $>$ (\begin{DoxyParamCaption}\item[{\hyperlink{namespaceOpenMesh_1_1IO_afa0a8afc6a9ca87786b10012faccdb5b}{uint8\+\_\+t} $\ast$}]{\+\_\+val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

this does not compile for g++3.4 and higher, hence we comment the function body which will result in a linker error 

Definition at line 106 of file S\+R\+\_\+rbo.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a7ff7637b99211fa04d6dc73b6e7363c1}\label{namespaceOpenMesh_1_1IO_a7ff7637b99211fa04d6dc73b6e7363c1}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 8 $>$@{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 8 $>$}}
\index{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 8 $>$@{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 8 $>$}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+\+N$<$ 8 $>$()}{\_reverse\_byte\_order\_N< 8 >()}}
{\footnotesize\ttfamily template$<$$>$ \\
void \hyperlink{namespaceOpenMesh_1_1IO_aa4fe1101edee9db0b0f7de1484b16567}{Open\+Mesh\+::\+I\+O\+::\+\_\+reverse\+\_\+byte\+\_\+order\+\_\+N}$<$ 8 $>$ (\begin{DoxyParamCaption}\item[{\hyperlink{namespaceOpenMesh_1_1IO_afa0a8afc6a9ca87786b10012faccdb5b}{uint8\+\_\+t} $\ast$}]{\+\_\+val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

this does not compile for g++3.4 and higher, hence we comment the function body which will result in a linker error 

Definition at line 114 of file S\+R\+\_\+rbo.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a0bd0cd8598ebc1e6fbd4061c8e65570b}\label{namespaceOpenMesh_1_1IO_a0bd0cd8598ebc1e6fbd4061c8e65570b}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!binary\+\_\+size@{binary\+\_\+size}}
\index{binary\+\_\+size@{binary\+\_\+size}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{binary\+\_\+size()}{binary\_size()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
size\+\_\+t Open\+Mesh\+::\+I\+O\+::binary\+\_\+size (\begin{DoxyParamCaption}\item[{const \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} \&}]{\+\_\+mesh,  }\item[{const std\+::string \&}]{\+\_\+ext,  }\item[{\hyperlink{classOpenMesh_1_1IO_1_1Options}{Options}}]{\+\_\+opt = {\ttfamily \hyperlink{classOpenMesh_1_1IO_1_1Options_a9f4f797b08c045b611eaa6f8d149da21a7e68f74f3e555a90cc6b3ea1b5fb42ac}{Options\+::\+Default}} }\end{DoxyParamCaption})}



Get binary size of data. 

This function calls the corresponding writer which calculates the size of the data that would be written to a binary file

The file format is determined by parameter \+\_\+ext. \+\_\+ext has to include \char`\"{}.\mbox{[}format\mbox{]}\char`\"{} in order to work properly (e.\+g. \char`\"{}.\+O\+F\+F\char`\"{})


\begin{DoxyParams}{Parameters}
{\em \+\_\+mesh} & Mesh to write \\
\hline
{\em \+\_\+ext} & extension of the file (used to determine the writing module) \\
\hline
{\em \+\_\+opt} & Writer options (e.\+g. writing of normals ... depends on the writer capabilities)\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Binary size in bytes used when writing the data 
\end{DoxyReturn}


Definition at line 268 of file Mesh\+I\+O.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a3e126a3b24ffb22ed44bff8fe1c7117c}\label{namespaceOpenMesh_1_1IO_a3e126a3b24ffb22ed44bff8fe1c7117c}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!compile\+\_\+time\+\_\+error\+\_\+\+\_\+no\+\_\+fundamental\+\_\+type@{compile\+\_\+time\+\_\+error\+\_\+\+\_\+no\+\_\+fundamental\+\_\+type}}
\index{compile\+\_\+time\+\_\+error\+\_\+\+\_\+no\+\_\+fundamental\+\_\+type@{compile\+\_\+time\+\_\+error\+\_\+\+\_\+no\+\_\+fundamental\+\_\+type}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{compile\+\_\+time\+\_\+error\+\_\+\+\_\+no\+\_\+fundamental\+\_\+type()}{compile\_time\_error\_\_no\_fundamental\_type()}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+I\+O\+::compile\+\_\+time\+\_\+error\+\_\+\+\_\+no\+\_\+fundamental\+\_\+type (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

this does not compile for g++3.4 and higher, hence we comment the function body which will result in a linker error 

Definition at line 156 of file S\+R\+\_\+rbo.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_aa13c5f0fa15845cde1f11e6afe53f106}\label{namespaceOpenMesh_1_1IO_aa13c5f0fa15845cde1f11e6afe53f106}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!I\+O\+Manager@{I\+O\+Manager}}
\index{I\+O\+Manager@{I\+O\+Manager}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{I\+O\+Manager()}{IOManager()}}
{\footnotesize\ttfamily O\+P\+E\+N\+M\+E\+S\+H\+D\+L\+L\+E\+X\+P\+O\+RT \hyperlink{classOpenMesh_1_1IO_1_1__IOManager__}{\+\_\+\+I\+O\+Manager\+\_\+} \& Open\+Mesh\+::\+I\+O\+::\+I\+O\+Manager (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

Declare the singleton getter function as friend to access the private constructor and destructor 

Definition at line 72 of file I\+O\+Manager.\+cc.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_afadc77f8b3e81138828deba328e65421}\label{namespaceOpenMesh_1_1IO_afadc77f8b3e81138828deba328e65421}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!is\+\_\+streamable@{is\+\_\+streamable}}
\index{is\+\_\+streamable@{is\+\_\+streamable}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{is\+\_\+streamable()}{is\_streamable()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
bool Open\+Mesh\+::\+I\+O\+::is\+\_\+streamable (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Binary read a {\ttfamily short} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true 

Definition at line 81 of file Store\+Restore.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a7676df8e34bbf86a2113dcb4402cc315}\label{namespaceOpenMesh_1_1IO_a7676df8e34bbf86a2113dcb4402cc315}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!is\+\_\+streamable@{is\+\_\+streamable}}
\index{is\+\_\+streamable@{is\+\_\+streamable}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{is\+\_\+streamable()}{is\_streamable()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
bool Open\+Mesh\+::\+I\+O\+::is\+\_\+streamable (\begin{DoxyParamCaption}\item[{const T \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Binary read a {\ttfamily short} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true 

Definition at line 85 of file Store\+Restore.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_aed6e745a43c8b7216ed5d025e5f444a3}\label{namespaceOpenMesh_1_1IO_aed6e745a43c8b7216ed5d025e5f444a3}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!read\+\_\+double@{read\+\_\+double}}
\index{read\+\_\+double@{read\+\_\+double}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{read\+\_\+double()}{read\_double()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily double Open\+Mesh\+::\+I\+O\+::read\+\_\+double (\begin{DoxyParamCaption}\item[{F\+I\+LE $\ast$}]{\+\_\+in,  }\item[{bool}]{\+\_\+swap = {\ttfamily false} }\end{DoxyParamCaption})}

Binary read a {\ttfamily double} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true \mbox{\Hypertarget{namespaceOpenMesh_1_1IO_af5949bfdc3e11c558c9c24905b0b31b6}\label{namespaceOpenMesh_1_1IO_af5949bfdc3e11c558c9c24905b0b31b6}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!read\+\_\+double@{read\+\_\+double}}
\index{read\+\_\+double@{read\+\_\+double}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{read\+\_\+double()}{read\_double()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily double Open\+Mesh\+::\+I\+O\+::read\+\_\+double (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{\+\_\+in,  }\item[{bool}]{\+\_\+swap = {\ttfamily false} }\end{DoxyParamCaption})}

Binary read a {\ttfamily double} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true \mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a20f780795d3d78da83e9c7fb5a6d078a}\label{namespaceOpenMesh_1_1IO_a20f780795d3d78da83e9c7fb5a6d078a}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!read\+\_\+float@{read\+\_\+float}}
\index{read\+\_\+float@{read\+\_\+float}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{read\+\_\+float()}{read\_float()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily float Open\+Mesh\+::\+I\+O\+::read\+\_\+float (\begin{DoxyParamCaption}\item[{F\+I\+LE $\ast$}]{\+\_\+in,  }\item[{bool}]{\+\_\+swap = {\ttfamily false} }\end{DoxyParamCaption})}

Binary read a {\ttfamily float} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true \mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a448dc5e7ff410bf023d902235f4f6509}\label{namespaceOpenMesh_1_1IO_a448dc5e7ff410bf023d902235f4f6509}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!read\+\_\+float@{read\+\_\+float}}
\index{read\+\_\+float@{read\+\_\+float}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{read\+\_\+float()}{read\_float()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily float Open\+Mesh\+::\+I\+O\+::read\+\_\+float (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{\+\_\+in,  }\item[{bool}]{\+\_\+swap = {\ttfamily false} }\end{DoxyParamCaption})}

Binary read a {\ttfamily float} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true \mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a75ddd1bb09930aaaccafd6f5afc3e8cb}\label{namespaceOpenMesh_1_1IO_a75ddd1bb09930aaaccafd6f5afc3e8cb}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!read\+\_\+int@{read\+\_\+int}}
\index{read\+\_\+int@{read\+\_\+int}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{read\+\_\+int()}{read\_int()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily int Open\+Mesh\+::\+I\+O\+::read\+\_\+int (\begin{DoxyParamCaption}\item[{F\+I\+LE $\ast$}]{\+\_\+in,  }\item[{bool}]{\+\_\+swap = {\ttfamily false} }\end{DoxyParamCaption})}

Binary read an {\ttfamily int} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true \mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a4dacbd0c451e7e23d7b89e365b83e20f}\label{namespaceOpenMesh_1_1IO_a4dacbd0c451e7e23d7b89e365b83e20f}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!read\+\_\+int@{read\+\_\+int}}
\index{read\+\_\+int@{read\+\_\+int}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{read\+\_\+int()}{read\_int()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily int Open\+Mesh\+::\+I\+O\+::read\+\_\+int (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{\+\_\+in,  }\item[{bool}]{\+\_\+swap = {\ttfamily false} }\end{DoxyParamCaption})}

Binary read an {\ttfamily int} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true \mbox{\Hypertarget{namespaceOpenMesh_1_1IO_ac417960ec28ffdd7e7003a2b1ebb2d1c}\label{namespaceOpenMesh_1_1IO_ac417960ec28ffdd7e7003a2b1ebb2d1c}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!read\+\_\+mesh@{read\+\_\+mesh}}
\index{read\+\_\+mesh@{read\+\_\+mesh}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{read\+\_\+mesh()}{read\_mesh()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
bool Open\+Mesh\+::\+I\+O\+::read\+\_\+mesh (\begin{DoxyParamCaption}\item[{\hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} \&}]{\+\_\+mesh,  }\item[{const std\+::string \&}]{\+\_\+filename }\end{DoxyParamCaption})}



Read a mesh from file \+\_\+filename. 

The file format is determined by the file extension.

\begin{DoxyNote}{Note}
If you link statically against \hyperlink{namespaceOpenMesh}{Open\+Mesh}, you have to add the define O\+M\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+B\+U\+I\+LD to your application. This will ensure that readers and writers get initialized correctly.
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em \+\_\+mesh} & The target mesh that will be filled with the read data \\
\hline
{\em \+\_\+filename} & fill to load\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Successful? 
\end{DoxyReturn}


Definition at line 112 of file Mesh\+I\+O.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_ae7ba2707a88e6d9b64a5c1bfab0df061}\label{namespaceOpenMesh_1_1IO_ae7ba2707a88e6d9b64a5c1bfab0df061}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!read\+\_\+mesh@{read\+\_\+mesh}}
\index{read\+\_\+mesh@{read\+\_\+mesh}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{read\+\_\+mesh()}{read\_mesh()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
bool Open\+Mesh\+::\+I\+O\+::read\+\_\+mesh (\begin{DoxyParamCaption}\item[{\hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} \&}]{\+\_\+mesh,  }\item[{const std\+::string \&}]{\+\_\+filename,  }\item[{\hyperlink{classOpenMesh_1_1IO_1_1Options}{Options} \&}]{\+\_\+opt,  }\item[{bool}]{\+\_\+clear = {\ttfamily true} }\end{DoxyParamCaption})}



Read a mesh from file \+\_\+filename. 

The file format is determined by the file extension.

\begin{DoxyNote}{Note}
If you link statically against \hyperlink{namespaceOpenMesh}{Open\+Mesh}, you have to add the define O\+M\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+B\+U\+I\+LD to your application. This will ensure that readers and writers get initialized correctly.
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em \+\_\+mesh} & The target mesh that will be filled with the read data \\
\hline
{\em \+\_\+filename} & fill to load \\
\hline
{\em \+\_\+opt} & Reader options (e.\+g. skip loading of normals ... depends on the reader capabilities). Note that simply passing an \hyperlink{classOpenMesh_1_1IO_1_1Options_a9f4f797b08c045b611eaa6f8d149da21}{Options\+::\+Flag} enum is not sufficient. \\
\hline
{\em \+\_\+clear} & Clear the target data before filling it (allows to load multiple files into one Mesh). If you only want to read a mesh without clearing set \+\_\+clear to false. Providing a default \hyperlink{classOpenMesh_1_1IO_1_1Options}{Options} object is sufficient in this case.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Successful? 
\end{DoxyReturn}


Definition at line 142 of file Mesh\+I\+O.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a0bcba9c50010ec3f16033b76e7f28154}\label{namespaceOpenMesh_1_1IO_a0bcba9c50010ec3f16033b76e7f28154}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!read\+\_\+mesh@{read\+\_\+mesh}}
\index{read\+\_\+mesh@{read\+\_\+mesh}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{read\+\_\+mesh()}{read\_mesh()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
bool Open\+Mesh\+::\+I\+O\+::read\+\_\+mesh (\begin{DoxyParamCaption}\item[{\hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} \&}]{\+\_\+mesh,  }\item[{std\+::istream \&}]{\+\_\+is,  }\item[{const std\+::string \&}]{\+\_\+ext,  }\item[{\hyperlink{classOpenMesh_1_1IO_1_1Options}{Options} \&}]{\+\_\+opt,  }\item[{bool}]{\+\_\+clear = {\ttfamily true} }\end{DoxyParamCaption})}



Read a mesh from file open std\+::istream. 

The file format is determined by parameter \+\_\+ext. \+\_\+ext has to include \char`\"{}.\mbox{[}format\mbox{]}\char`\"{} in order to work properly (e.\+g. \char`\"{}.\+O\+F\+F\char`\"{})

\begin{DoxyNote}{Note}
If you link statically against \hyperlink{namespaceOpenMesh}{Open\+Mesh}, you have to add the define O\+M\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+B\+U\+I\+LD to your application. This will ensure that readers and writers get initialized correctly.
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em \+\_\+mesh} & The target mesh that will be filled with the read data \\
\hline
{\em \+\_\+is} & stream to load the data from \\
\hline
{\em \+\_\+ext} & The file format that is written to the stream \\
\hline
{\em \+\_\+opt} & Reader options (e.\+g. skip loading of normals ... depends on the reader capabilities) \\
\hline
{\em \+\_\+clear} & Clear the target data before filling it (allows to load multiple files into one Mesh)\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Successful? 
\end{DoxyReturn}


Definition at line 174 of file Mesh\+I\+O.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a0624f19c95f466ea4e8ac0f725add9ee}\label{namespaceOpenMesh_1_1IO_a0624f19c95f466ea4e8ac0f725add9ee}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!read\+\_\+short@{read\+\_\+short}}
\index{read\+\_\+short@{read\+\_\+short}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{read\+\_\+short()}{read\_short()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily short int Open\+Mesh\+::\+I\+O\+::read\+\_\+short (\begin{DoxyParamCaption}\item[{F\+I\+LE $\ast$}]{\+\_\+in,  }\item[{bool}]{\+\_\+swap = {\ttfamily false} }\end{DoxyParamCaption})}

Binary read a {\ttfamily short} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true \mbox{\Hypertarget{namespaceOpenMesh_1_1IO_afdac9f17749663acf382236eca1e79ac}\label{namespaceOpenMesh_1_1IO_afdac9f17749663acf382236eca1e79ac}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!read\+\_\+short@{read\+\_\+short}}
\index{read\+\_\+short@{read\+\_\+short}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{read\+\_\+short()}{read\_short()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily short int Open\+Mesh\+::\+I\+O\+::read\+\_\+short (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{\+\_\+in,  }\item[{bool}]{\+\_\+swap = {\ttfamily false} }\end{DoxyParamCaption})}

Binary read a {\ttfamily short} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true \mbox{\Hypertarget{namespaceOpenMesh_1_1IO_ae65ee571a8707c7f87cbf8d175b9329b}\label{namespaceOpenMesh_1_1IO_ae65ee571a8707c7f87cbf8d175b9329b}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!restore@{restore}}
\index{restore@{restore}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{restore()}{restore()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
size\+\_\+t Open\+Mesh\+::\+I\+O\+::restore (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{\+\_\+is,  }\item[{T \&}]{\+\_\+v,  }\item[{bool}]{\+\_\+swap = {\ttfamily false} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Binary read a {\ttfamily short} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true 

Definition at line 101 of file Store\+Restore.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_ac2aa5537be67b342cda9c70b1a838e6a}\label{namespaceOpenMesh_1_1IO_ac2aa5537be67b342cda9c70b1a838e6a}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!reverse\+\_\+byte\+\_\+order@{reverse\+\_\+byte\+\_\+order}}
\index{reverse\+\_\+byte\+\_\+order@{reverse\+\_\+byte\+\_\+order}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{reverse\+\_\+byte\+\_\+order()}{reverse\_byte\_order()}\hspace{0.1cm}{\footnotesize\ttfamily [1/6]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
T$\ast$ Open\+Mesh\+::\+I\+O\+::reverse\+\_\+byte\+\_\+order (\begin{DoxyParamCaption}\item[{T $\ast$}]{t }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

this does not compile for g++3.4 and higher, hence we comment the function body which will result in a linker error \mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a951cbe1d4c36ef10777553a88c9292d6}\label{namespaceOpenMesh_1_1IO_a951cbe1d4c36ef10777553a88c9292d6}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!reverse\+\_\+byte\+\_\+order@{reverse\+\_\+byte\+\_\+order}}
\index{reverse\+\_\+byte\+\_\+order@{reverse\+\_\+byte\+\_\+order}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{reverse\+\_\+byte\+\_\+order()}{reverse\_byte\_order()}\hspace{0.1cm}{\footnotesize\ttfamily [2/6]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
T\& Open\+Mesh\+::\+I\+O\+::reverse\+\_\+byte\+\_\+order (\begin{DoxyParamCaption}\item[{T \&}]{\+\_\+t }\end{DoxyParamCaption})}

this does not compile for g++3.4 and higher, hence we comment the function body which will result in a linker error 

Definition at line 164 of file S\+R\+\_\+rbo.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a50b05a5733efef1d67754f9ce8769e55}\label{namespaceOpenMesh_1_1IO_a50b05a5733efef1d67754f9ce8769e55}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!reverse\+\_\+byte\+\_\+order@{reverse\+\_\+byte\+\_\+order}}
\index{reverse\+\_\+byte\+\_\+order@{reverse\+\_\+byte\+\_\+order}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{reverse\+\_\+byte\+\_\+order()}{reverse\_byte\_order()}\hspace{0.1cm}{\footnotesize\ttfamily [3/6]}}
{\footnotesize\ttfamily template$<$$>$ \\
bool\& Open\+Mesh\+::\+I\+O\+::reverse\+\_\+byte\+\_\+order (\begin{DoxyParamCaption}\item[{bool \&}]{\+\_\+t }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

this does not compile for g++3.4 and higher, hence we comment the function body which will result in a linker error 

Definition at line 171 of file S\+R\+\_\+rbo.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a280a6ee2676bf9420631b34f4daf62fe}\label{namespaceOpenMesh_1_1IO_a280a6ee2676bf9420631b34f4daf62fe}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!reverse\+\_\+byte\+\_\+order@{reverse\+\_\+byte\+\_\+order}}
\index{reverse\+\_\+byte\+\_\+order@{reverse\+\_\+byte\+\_\+order}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{reverse\+\_\+byte\+\_\+order()}{reverse\_byte\_order()}\hspace{0.1cm}{\footnotesize\ttfamily [4/6]}}
{\footnotesize\ttfamily template$<$$>$ \\
char\& Open\+Mesh\+::\+I\+O\+::reverse\+\_\+byte\+\_\+order (\begin{DoxyParamCaption}\item[{char \&}]{\+\_\+t }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

this does not compile for g++3.4 and higher, hence we comment the function body which will result in a linker error 

Definition at line 172 of file S\+R\+\_\+rbo.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a4820f98582e7b78c405154714b72171a}\label{namespaceOpenMesh_1_1IO_a4820f98582e7b78c405154714b72171a}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!reverse\+\_\+byte\+\_\+order@{reverse\+\_\+byte\+\_\+order}}
\index{reverse\+\_\+byte\+\_\+order@{reverse\+\_\+byte\+\_\+order}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{reverse\+\_\+byte\+\_\+order()}{reverse\_byte\_order()}\hspace{0.1cm}{\footnotesize\ttfamily [5/6]}}
{\footnotesize\ttfamily template$<$$>$ \\
\hyperlink{namespaceOpenMesh_1_1IO_a84abcdac3919ac323a51197c45c30ce7}{uchar}\& Open\+Mesh\+::\+I\+O\+::reverse\+\_\+byte\+\_\+order (\begin{DoxyParamCaption}\item[{\hyperlink{namespaceOpenMesh_1_1IO_a84abcdac3919ac323a51197c45c30ce7}{uchar} \&}]{\+\_\+t }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

this does not compile for g++3.4 and higher, hence we comment the function body which will result in a linker error 

Definition at line 176 of file S\+R\+\_\+rbo.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_ae936bf1ad8ab108b931de920b5748817}\label{namespaceOpenMesh_1_1IO_ae936bf1ad8ab108b931de920b5748817}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!reverse\+\_\+byte\+\_\+order@{reverse\+\_\+byte\+\_\+order}}
\index{reverse\+\_\+byte\+\_\+order@{reverse\+\_\+byte\+\_\+order}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{reverse\+\_\+byte\+\_\+order()}{reverse\_byte\_order()}\hspace{0.1cm}{\footnotesize\ttfamily [6/6]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
T Open\+Mesh\+::\+I\+O\+::reverse\+\_\+byte\+\_\+order (\begin{DoxyParamCaption}\item[{const T \&}]{a }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

this does not compile for g++3.4 and higher, hence we comment the function body which will result in a linker error 

Definition at line 235 of file S\+R\+\_\+rbo.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a787a7735700a12801c8a505f2c605681}\label{namespaceOpenMesh_1_1IO_a787a7735700a12801c8a505f2c605681}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!size\+\_\+of@{size\+\_\+of}}
\index{size\+\_\+of@{size\+\_\+of}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{size\+\_\+of()}{size\_of()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
size\+\_\+t Open\+Mesh\+::\+I\+O\+::size\+\_\+of (\begin{DoxyParamCaption}\item[{const T \&}]{\+\_\+v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Binary read a {\ttfamily short} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true 

Definition at line 89 of file Store\+Restore.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_ad8390aa99222173319cc40a28be1bbbb}\label{namespaceOpenMesh_1_1IO_ad8390aa99222173319cc40a28be1bbbb}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!size\+\_\+of@{size\+\_\+of}}
\index{size\+\_\+of@{size\+\_\+of}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{size\+\_\+of()}{size\_of()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
size\+\_\+t Open\+Mesh\+::\+I\+O\+::size\+\_\+of (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Binary read a {\ttfamily short} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true 

Definition at line 93 of file Store\+Restore.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a1f3c51bb7b0781f15a9f578059ed4e51}\label{namespaceOpenMesh_1_1IO_a1f3c51bb7b0781f15a9f578059ed4e51}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!store@{store}}
\index{store@{store}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{store()}{store()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
size\+\_\+t Open\+Mesh\+::\+I\+O\+::store (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{\+\_\+os,  }\item[{const T \&}]{\+\_\+v,  }\item[{bool}]{\+\_\+swap = {\ttfamily false} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Binary read a {\ttfamily short} from {\ttfamily \+\_\+is} and perform byte swapping if {\ttfamily \+\_\+swap} is true 

Definition at line 97 of file Store\+Restore.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a4166b3ec8bf0e2ea692c1a25b7cf691f}\label{namespaceOpenMesh_1_1IO_a4166b3ec8bf0e2ea692c1a25b7cf691f}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!write\+\_\+double@{write\+\_\+double}}
\index{write\+\_\+double@{write\+\_\+double}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{write\+\_\+double()}{write\_double()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+I\+O\+::write\+\_\+double (\begin{DoxyParamCaption}\item[{double}]{\+\_\+d,  }\item[{F\+I\+LE $\ast$}]{\+\_\+out,  }\item[{bool}]{\+\_\+swap = {\ttfamily false} }\end{DoxyParamCaption})}

Binary write a {\ttfamily double} to {\ttfamily \+\_\+os} and perform byte swapping if {\ttfamily \+\_\+swap} is true \mbox{\Hypertarget{namespaceOpenMesh_1_1IO_aac9d5af189b996e6732c617eb19a2c22}\label{namespaceOpenMesh_1_1IO_aac9d5af189b996e6732c617eb19a2c22}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!write\+\_\+double@{write\+\_\+double}}
\index{write\+\_\+double@{write\+\_\+double}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{write\+\_\+double()}{write\_double()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+I\+O\+::write\+\_\+double (\begin{DoxyParamCaption}\item[{double}]{\+\_\+d,  }\item[{std\+::ostream \&}]{\+\_\+out,  }\item[{bool}]{\+\_\+swap = {\ttfamily false} }\end{DoxyParamCaption})}

Binary write a {\ttfamily double} to {\ttfamily \+\_\+os} and perform byte swapping if {\ttfamily \+\_\+swap} is true \mbox{\Hypertarget{namespaceOpenMesh_1_1IO_afb252a52391827e4615ab36044ff124e}\label{namespaceOpenMesh_1_1IO_afb252a52391827e4615ab36044ff124e}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!write\+\_\+float@{write\+\_\+float}}
\index{write\+\_\+float@{write\+\_\+float}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{write\+\_\+float()}{write\_float()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+I\+O\+::write\+\_\+float (\begin{DoxyParamCaption}\item[{float}]{\+\_\+f,  }\item[{F\+I\+LE $\ast$}]{\+\_\+out,  }\item[{bool}]{\+\_\+swap = {\ttfamily false} }\end{DoxyParamCaption})}

Binary write a {\ttfamily float} to {\ttfamily \+\_\+os} and perform byte swapping if {\ttfamily \+\_\+swap} is true \mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a61b4b304e867dc651e188f5439d06ed6}\label{namespaceOpenMesh_1_1IO_a61b4b304e867dc651e188f5439d06ed6}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!write\+\_\+float@{write\+\_\+float}}
\index{write\+\_\+float@{write\+\_\+float}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{write\+\_\+float()}{write\_float()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+I\+O\+::write\+\_\+float (\begin{DoxyParamCaption}\item[{float}]{\+\_\+f,  }\item[{std\+::ostream \&}]{\+\_\+out,  }\item[{bool}]{\+\_\+swap = {\ttfamily false} }\end{DoxyParamCaption})}

Binary write a {\ttfamily float} to {\ttfamily \+\_\+os} and perform byte swapping if {\ttfamily \+\_\+swap} is true \mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a3430c109c16cb93ce20ec04848907e30}\label{namespaceOpenMesh_1_1IO_a3430c109c16cb93ce20ec04848907e30}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!write\+\_\+int@{write\+\_\+int}}
\index{write\+\_\+int@{write\+\_\+int}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{write\+\_\+int()}{write\_int()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+I\+O\+::write\+\_\+int (\begin{DoxyParamCaption}\item[{int}]{\+\_\+i,  }\item[{F\+I\+LE $\ast$}]{\+\_\+out,  }\item[{bool}]{\+\_\+swap = {\ttfamily false} }\end{DoxyParamCaption})}

Binary write an {\ttfamily int} to {\ttfamily \+\_\+os} and perform byte swapping if {\ttfamily \+\_\+swap} is true \mbox{\Hypertarget{namespaceOpenMesh_1_1IO_ac26ad91b0667616d47d6a3085c2b71ad}\label{namespaceOpenMesh_1_1IO_ac26ad91b0667616d47d6a3085c2b71ad}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!write\+\_\+int@{write\+\_\+int}}
\index{write\+\_\+int@{write\+\_\+int}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{write\+\_\+int()}{write\_int()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+I\+O\+::write\+\_\+int (\begin{DoxyParamCaption}\item[{int}]{\+\_\+i,  }\item[{std\+::ostream \&}]{\+\_\+out,  }\item[{bool}]{\+\_\+swap = {\ttfamily false} }\end{DoxyParamCaption})}

Binary write an {\ttfamily int} to {\ttfamily \+\_\+os} and perform byte swapping if {\ttfamily \+\_\+swap} is true \mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a18286a792ebf896872f5e26182fc5c7b}\label{namespaceOpenMesh_1_1IO_a18286a792ebf896872f5e26182fc5c7b}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!write\+\_\+mesh@{write\+\_\+mesh}}
\index{write\+\_\+mesh@{write\+\_\+mesh}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{write\+\_\+mesh()}{write\_mesh()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
bool Open\+Mesh\+::\+I\+O\+::write\+\_\+mesh (\begin{DoxyParamCaption}\item[{const \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} \&}]{\+\_\+mesh,  }\item[{const std\+::string \&}]{\+\_\+filename,  }\item[{\hyperlink{classOpenMesh_1_1IO_1_1Options}{Options}}]{\+\_\+opt = {\ttfamily \hyperlink{classOpenMesh_1_1IO_1_1Options_a9f4f797b08c045b611eaa6f8d149da21a7e68f74f3e555a90cc6b3ea1b5fb42ac}{Options\+::\+Default}},  }\item[{std\+::streamsize}]{\+\_\+precision = {\ttfamily 6} }\end{DoxyParamCaption})}



Write a mesh to the file \+\_\+filename. 

The file format is determined by \+\_\+filename\textquotesingle{}s extension.

\begin{DoxyNote}{Note}
If you link statically against \hyperlink{namespaceOpenMesh}{Open\+Mesh}, you have to add the define O\+M\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+B\+U\+I\+LD to your application. This will ensure that readers and writers get initialized correctly.
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em \+\_\+mesh} & The mesh that will be written to file \\
\hline
{\em \+\_\+filename} & output filename \\
\hline
{\em \+\_\+opt} & Writer options (e.\+g. writing of normals ... depends on the writer capabilities) \\
\hline
{\em \+\_\+precision} & specifies stream precision for ascii files\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Successful? 
\end{DoxyReturn}


Definition at line 207 of file Mesh\+I\+O.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a15d23bba1a9d2439621938f5f3b07f43}\label{namespaceOpenMesh_1_1IO_a15d23bba1a9d2439621938f5f3b07f43}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!write\+\_\+mesh@{write\+\_\+mesh}}
\index{write\+\_\+mesh@{write\+\_\+mesh}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{write\+\_\+mesh()}{write\_mesh()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
bool Open\+Mesh\+::\+I\+O\+::write\+\_\+mesh (\begin{DoxyParamCaption}\item[{const \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} \&}]{\+\_\+mesh,  }\item[{std\+::ostream \&}]{\+\_\+os,  }\item[{const std\+::string \&}]{\+\_\+ext,  }\item[{\hyperlink{classOpenMesh_1_1IO_1_1Options}{Options}}]{\+\_\+opt = {\ttfamily \hyperlink{classOpenMesh_1_1IO_1_1Options_a9f4f797b08c045b611eaa6f8d149da21a7e68f74f3e555a90cc6b3ea1b5fb42ac}{Options\+::\+Default}},  }\item[{std\+::streamsize}]{\+\_\+precision = {\ttfamily 6} }\end{DoxyParamCaption})}

Write a mesh to an open std\+::ostream.

The file format is determined by parameter \+\_\+ext. \+\_\+ext has to include \char`\"{}.\mbox{[}format\mbox{]}\char`\"{} in order to work properly (e.\+g. \char`\"{}.\+O\+F\+F\char`\"{})

\begin{DoxyNote}{Note}
If you link statically against \hyperlink{namespaceOpenMesh}{Open\+Mesh}, you have to add the define O\+M\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+B\+U\+I\+LD to your application. This will ensure that readers and writers get initialized correctly.
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em \+\_\+mesh} & The mesh that will be written to file \\
\hline
{\em \+\_\+os} & output stream to write into \\
\hline
{\em \+\_\+ext} & extension defining the type of output \\
\hline
{\em \+\_\+opt} & Writer options (e.\+g. writing of normals ... depends on the writer capabilities) \\
\hline
{\em \+\_\+precision} & specifies stream precision for ascii files\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Successful? 
\end{DoxyReturn}


Definition at line 239 of file Mesh\+I\+O.\+hh.

\mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a7001f05c3b1aa725cfbdf306a6e5cdaa}\label{namespaceOpenMesh_1_1IO_a7001f05c3b1aa725cfbdf306a6e5cdaa}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!write\+\_\+short@{write\+\_\+short}}
\index{write\+\_\+short@{write\+\_\+short}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{write\+\_\+short()}{write\_short()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+I\+O\+::write\+\_\+short (\begin{DoxyParamCaption}\item[{short int}]{\+\_\+i,  }\item[{F\+I\+LE $\ast$}]{\+\_\+out,  }\item[{bool}]{\+\_\+swap = {\ttfamily false} }\end{DoxyParamCaption})}

Binary write a {\ttfamily short} to {\ttfamily \+\_\+os} and perform byte swapping if {\ttfamily \+\_\+swap} is true \mbox{\Hypertarget{namespaceOpenMesh_1_1IO_a0cbd7b5564f09b8474e40c64ccbf69c4}\label{namespaceOpenMesh_1_1IO_a0cbd7b5564f09b8474e40c64ccbf69c4}} 
\index{Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}!write\+\_\+short@{write\+\_\+short}}
\index{write\+\_\+short@{write\+\_\+short}!Open\+Mesh\+::\+IO@{Open\+Mesh\+::\+IO}}
\subsubsection{\texorpdfstring{write\+\_\+short()}{write\_short()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+I\+O\+::write\+\_\+short (\begin{DoxyParamCaption}\item[{short int}]{\+\_\+i,  }\item[{std\+::ostream \&}]{\+\_\+out,  }\item[{bool}]{\+\_\+swap = {\ttfamily false} }\end{DoxyParamCaption})}

Binary write a {\ttfamily short} to {\ttfamily \+\_\+os} and perform byte swapping if {\ttfamily \+\_\+swap} is true 