\hypertarget{classOpenMesh_1_1IO_1_1BaseReader}{}\section{Open\+Mesh\+:\+:IO\+:\+:Base\+Reader Class Reference}
\label{classOpenMesh_1_1IO_1_1BaseReader}\index{Open\+Mesh\+::\+I\+O\+::\+Base\+Reader@{Open\+Mesh\+::\+I\+O\+::\+Base\+Reader}}


{\ttfamily \#include $<$Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Core/\+I\+O/reader/\+Base\+Reader.\+hh$>$}

Inheritance diagram for Open\+Mesh\+:\+:IO\+:\+:Base\+Reader\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=1.191489cm]{classOpenMesh_1_1IO_1_1BaseReader}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1IO_1_1BaseReader_affd6cb98cb0883d0afc5edd2067b21fe}\label{classOpenMesh_1_1IO_1_1BaseReader_affd6cb98cb0883d0afc5edd2067b21fe}} 
virtual \hyperlink{classOpenMesh_1_1IO_1_1BaseReader_affd6cb98cb0883d0afc5edd2067b21fe}{$\sim$\+Base\+Reader} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOpenMesh_1_1IO_1_1BaseReader_a845929e9dc345159b03b30eb3fbfe0aa}\label{classOpenMesh_1_1IO_1_1BaseReader_a845929e9dc345159b03b30eb3fbfe0aa}} 
virtual std\+::string \hyperlink{classOpenMesh_1_1IO_1_1BaseReader_a845929e9dc345159b03b30eb3fbfe0aa}{get\+\_\+description} () const =0
\begin{DoxyCompactList}\small\item\em Returns a brief description of the file type that can be parsed. \end{DoxyCompactList}\item 
virtual std\+::string \hyperlink{classOpenMesh_1_1IO_1_1BaseReader_a9e76bc7b1b46b7a8b4922d8ca5934419}{get\+\_\+extensions} () const =0
\item 
\mbox{\Hypertarget{classOpenMesh_1_1IO_1_1BaseReader_ad89e93769bc1e41d8d465012e5c45512}\label{classOpenMesh_1_1IO_1_1BaseReader_ad89e93769bc1e41d8d465012e5c45512}} 
virtual std\+::string \hyperlink{classOpenMesh_1_1IO_1_1BaseReader_ad89e93769bc1e41d8d465012e5c45512}{get\+\_\+magic} () const
\begin{DoxyCompactList}\small\item\em Return magic bits used to determine file format. \end{DoxyCompactList}\item 
virtual bool \hyperlink{classOpenMesh_1_1IO_1_1BaseReader_af4a32645528c1bf2043a9259b172f411}{read} (const std\+::string \&\+\_\+filename, \hyperlink{classOpenMesh_1_1IO_1_1BaseImporter}{Base\+Importer} \&\+\_\+bi, \hyperlink{classOpenMesh_1_1IO_1_1Options}{Options} \&\+\_\+opt)=0
\item 
virtual bool \hyperlink{classOpenMesh_1_1IO_1_1BaseReader_a0fd4df36decf91cd91a7f363aae56065}{read} (std\+::istream \&\+\_\+is, \hyperlink{classOpenMesh_1_1IO_1_1BaseImporter}{Base\+Importer} \&\+\_\+bi, \hyperlink{classOpenMesh_1_1IO_1_1Options}{Options} \&\+\_\+opt)=0
\item 
virtual bool \hyperlink{classOpenMesh_1_1IO_1_1BaseReader_accf5c3edc6b4f628d0a696c7d10fc475}{can\+\_\+u\+\_\+read} (const std\+::string \&\+\_\+filename) const
\begin{DoxyCompactList}\small\item\em Returns true if writer can parse \+\_\+filename (checks extension). \+\_\+filename can also provide an extension without a name for a file e.\+g. \+\_\+filename == \char`\"{}om\char`\"{} checks, if the reader can read the \char`\"{}om\char`\"{} extension. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1IO_1_1BaseReader_a33974409ebeefacf4c4641483ac7cdf7}\label{classOpenMesh_1_1IO_1_1BaseReader_a33974409ebeefacf4c4641483ac7cdf7}} 
bool {\bfseries check\+\_\+extension} (const std\+::string \&\+\_\+fname, const std\+::string \&\+\_\+ext) const
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Base class for reader modules. Reader modules access persistent data and pass them to the desired data structure by the means of a \hyperlink{classOpenMesh_1_1IO_1_1BaseImporter}{Base\+Importer} derivative. All reader modules must be derived from this class. 

Definition at line 86 of file Base\+Reader.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classOpenMesh_1_1IO_1_1BaseReader_accf5c3edc6b4f628d0a696c7d10fc475}\label{classOpenMesh_1_1IO_1_1BaseReader_accf5c3edc6b4f628d0a696c7d10fc475}} 
\index{Open\+Mesh\+::\+I\+O\+::\+Base\+Reader@{Open\+Mesh\+::\+I\+O\+::\+Base\+Reader}!can\+\_\+u\+\_\+read@{can\+\_\+u\+\_\+read}}
\index{can\+\_\+u\+\_\+read@{can\+\_\+u\+\_\+read}!Open\+Mesh\+::\+I\+O\+::\+Base\+Reader@{Open\+Mesh\+::\+I\+O\+::\+Base\+Reader}}
\subsubsection{\texorpdfstring{can\+\_\+u\+\_\+read()}{can\_u\_read()}}
{\footnotesize\ttfamily bool Base\+Reader\+::can\+\_\+u\+\_\+read (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{\+\_\+filename }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}



Returns true if writer can parse \+\_\+filename (checks extension). \+\_\+filename can also provide an extension without a name for a file e.\+g. \+\_\+filename == \char`\"{}om\char`\"{} checks, if the reader can read the \char`\"{}om\char`\"{} extension. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+filename} & complete name of a file or just the extension \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true, if reader can read data with the given extension 
\end{DoxyReturn}


Reimplemented in \hyperlink{classOpenMesh_1_1IO_1_1__OFFReader___a0204e3fe1867bd1086e6e962f381e0b6}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+O\+F\+F\+Reader\+\_\+}, \hyperlink{classOpenMesh_1_1IO_1_1__PLYReader___a99b1ffce8f4b4a2a6b8be3aa4f691272}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+}, and \hyperlink{classOpenMesh_1_1IO_1_1__OMReader___a2d1747f379b1d9dc0abe503d151842ef}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+O\+M\+Reader\+\_\+}.



Definition at line 77 of file Base\+Reader.\+cc.

\mbox{\Hypertarget{classOpenMesh_1_1IO_1_1BaseReader_a9e76bc7b1b46b7a8b4922d8ca5934419}\label{classOpenMesh_1_1IO_1_1BaseReader_a9e76bc7b1b46b7a8b4922d8ca5934419}} 
\index{Open\+Mesh\+::\+I\+O\+::\+Base\+Reader@{Open\+Mesh\+::\+I\+O\+::\+Base\+Reader}!get\+\_\+extensions@{get\+\_\+extensions}}
\index{get\+\_\+extensions@{get\+\_\+extensions}!Open\+Mesh\+::\+I\+O\+::\+Base\+Reader@{Open\+Mesh\+::\+I\+O\+::\+Base\+Reader}}
\subsubsection{\texorpdfstring{get\+\_\+extensions()}{get\_extensions()}}
{\footnotesize\ttfamily virtual std\+::string Open\+Mesh\+::\+I\+O\+::\+Base\+Reader\+::get\+\_\+extensions (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Returns a string with the accepted file extensions separated by a whitespace and in small caps. 

Implemented in \hyperlink{classOpenMesh_1_1IO_1_1__OFFReader___ad7527069b7ce7f90e5cbbf3102178299}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+O\+F\+F\+Reader\+\_\+}, \hyperlink{classOpenMesh_1_1IO_1_1__PLYReader___ab5c56767d9bd221820d7825274a67265}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+}, \hyperlink{classOpenMesh_1_1IO_1_1__STLReader___a798003eb614103a79e79de781b895034}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+S\+T\+L\+Reader\+\_\+}, \hyperlink{classOpenMesh_1_1IO_1_1__OMReader___a7480f987604a5c8c187ead07eb4c2e73}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+O\+M\+Reader\+\_\+}, and \hyperlink{classOpenMesh_1_1IO_1_1__OBJReader___a8e8f3bf6baa396b2a6ef1f33a9bb8f22}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+O\+B\+J\+Reader\+\_\+}.

\mbox{\Hypertarget{classOpenMesh_1_1IO_1_1BaseReader_af4a32645528c1bf2043a9259b172f411}\label{classOpenMesh_1_1IO_1_1BaseReader_af4a32645528c1bf2043a9259b172f411}} 
\index{Open\+Mesh\+::\+I\+O\+::\+Base\+Reader@{Open\+Mesh\+::\+I\+O\+::\+Base\+Reader}!read@{read}}
\index{read@{read}!Open\+Mesh\+::\+I\+O\+::\+Base\+Reader@{Open\+Mesh\+::\+I\+O\+::\+Base\+Reader}}
\subsubsection{\texorpdfstring{read()}{read()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily virtual bool Open\+Mesh\+::\+I\+O\+::\+Base\+Reader\+::read (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{\+\_\+filename,  }\item[{\hyperlink{classOpenMesh_1_1IO_1_1BaseImporter}{Base\+Importer} \&}]{\+\_\+bi,  }\item[{\hyperlink{classOpenMesh_1_1IO_1_1Options}{Options} \&}]{\+\_\+opt }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Reads a mesh given by a filename. Usually this method opens a stream and passes it to stream read method. Acceptance checks by filename extension can be placed here.

\hyperlink{classOpenMesh_1_1IO_1_1Options}{Options} can be passed via \+\_\+opt. After execution \+\_\+opt contains the \hyperlink{classOpenMesh_1_1IO_1_1Options}{Options} that were available 

Implemented in \hyperlink{classOpenMesh_1_1IO_1_1__OFFReader___a88e2011ca42baa579175f01c6e63121e}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+O\+F\+F\+Reader\+\_\+}, \hyperlink{classOpenMesh_1_1IO_1_1__PLYReader___a784b898fd9a606843565cc4e81e23924}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+}, \hyperlink{classOpenMesh_1_1IO_1_1__STLReader___a39b94cd8c79e0a96922617a00dd1527e}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+S\+T\+L\+Reader\+\_\+}, \hyperlink{classOpenMesh_1_1IO_1_1__OMReader___abb7a0b5c75f5938de89335d1fc4565d8}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+O\+M\+Reader\+\_\+}, and \hyperlink{classOpenMesh_1_1IO_1_1__OBJReader___ae6c0e5609c06f59f0f509bed4638078f}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+O\+B\+J\+Reader\+\_\+}.

\mbox{\Hypertarget{classOpenMesh_1_1IO_1_1BaseReader_a0fd4df36decf91cd91a7f363aae56065}\label{classOpenMesh_1_1IO_1_1BaseReader_a0fd4df36decf91cd91a7f363aae56065}} 
\index{Open\+Mesh\+::\+I\+O\+::\+Base\+Reader@{Open\+Mesh\+::\+I\+O\+::\+Base\+Reader}!read@{read}}
\index{read@{read}!Open\+Mesh\+::\+I\+O\+::\+Base\+Reader@{Open\+Mesh\+::\+I\+O\+::\+Base\+Reader}}
\subsubsection{\texorpdfstring{read()}{read()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily virtual bool Open\+Mesh\+::\+I\+O\+::\+Base\+Reader\+::read (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{\+\_\+is,  }\item[{\hyperlink{classOpenMesh_1_1IO_1_1BaseImporter}{Base\+Importer} \&}]{\+\_\+bi,  }\item[{\hyperlink{classOpenMesh_1_1IO_1_1Options}{Options} \&}]{\+\_\+opt }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Reads a mesh given by a std\+::stream. This method usually uses the same stream reading method that read uses. \hyperlink{classOpenMesh_1_1IO_1_1Options}{Options} can be passed via \+\_\+opt. After execution \+\_\+opt contains the \hyperlink{classOpenMesh_1_1IO_1_1Options}{Options} that were available.

Please make sure that if \+\_\+is is std\+::ifstream, the correct std\+::ios\+\_\+base\+::openmode flags are set. 

Implemented in \hyperlink{classOpenMesh_1_1IO_1_1__OFFReader___a44641981102decac8882009401469af5}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+O\+F\+F\+Reader\+\_\+}, \hyperlink{classOpenMesh_1_1IO_1_1__PLYReader___ac35ca344b4fb357bb3751f54d23a9c44}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+}, \hyperlink{classOpenMesh_1_1IO_1_1__STLReader___a12d48f1c38b508446b578183a4e33619}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+S\+T\+L\+Reader\+\_\+}, \hyperlink{classOpenMesh_1_1IO_1_1__OMReader___afdd67ff78ff805dfa8a08938778aba1d}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+O\+M\+Reader\+\_\+}, and \hyperlink{classOpenMesh_1_1IO_1_1__OBJReader___aabd1b863ade9abf70d2965caace7dbc9}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+O\+B\+J\+Reader\+\_\+}.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Core/\+I\+O/reader/Base\+Reader.\+hh\item 
Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Core/\+I\+O/reader/Base\+Reader.\+cc\end{DoxyCompactItemize}
