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


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

Inheritance diagram for Open\+Mesh\+:\+:I\+O\+:\+:Base\+Reader\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=1.191489cm]{a00338}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00338_affd6cb98cb0883d0afc5edd2067b21fe}{virtual \hyperlink{a00338_affd6cb98cb0883d0afc5edd2067b21fe}{$\sim$\+Base\+Reader} ()}\label{a00338_affd6cb98cb0883d0afc5edd2067b21fe}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
\hypertarget{a00338_a845929e9dc345159b03b30eb3fbfe0aa}{virtual std\+::string \hyperlink{a00338_a845929e9dc345159b03b30eb3fbfe0aa}{get\+\_\+description} () const =0}\label{a00338_a845929e9dc345159b03b30eb3fbfe0aa}

\begin{DoxyCompactList}\small\item\em Returns a brief description of the file type that can be parsed. \end{DoxyCompactList}\item 
virtual std\+::string \hyperlink{a00338_a9e76bc7b1b46b7a8b4922d8ca5934419}{get\+\_\+extensions} () const =0
\item 
\hypertarget{a00338_ad42405faca54db1c05f1499f4b919910}{virtual std\+::string \hyperlink{a00338_ad42405faca54db1c05f1499f4b919910}{get\+\_\+magic} () const }\label{a00338_ad42405faca54db1c05f1499f4b919910}

\begin{DoxyCompactList}\small\item\em Return magic bits used to determine file format. \end{DoxyCompactList}\item 
virtual bool \hyperlink{a00338_af4a32645528c1bf2043a9259b172f411}{read} (const std\+::string \&\+\_\+filename, \hyperlink{a00319}{Base\+Importer} \&\+\_\+bi, \hyperlink{a00941}{Options} \&\+\_\+opt)=0
\item 
virtual bool \hyperlink{a00338_a0fd4df36decf91cd91a7f363aae56065}{read} (std\+::istream \&\+\_\+is, \hyperlink{a00319}{Base\+Importer} \&\+\_\+bi, \hyperlink{a00941}{Options} \&\+\_\+opt)=0
\item 
virtual bool \hyperlink{a00338_a29f61a3902841c6b006d57614a05a53f}{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 
\hypertarget{a00338_afc9d21f05bebf1c85ad2701427ffd4ee}{bool {\bfseries check\+\_\+extension} (const std\+::string \&\+\_\+fname, const std\+::string \&\+\_\+ext) const }\label{a00338_afc9d21f05bebf1c85ad2701427ffd4ee}

\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{a00319}{Base\+Importer} derivative. All reader modules must be derived from this class. 

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



\subsection{Member Function Documentation}
\hypertarget{a00338_a29f61a3902841c6b006d57614a05a53f}{\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[{can\+\_\+u\+\_\+read}]{\setlength{\rightskip}{0pt plus 5cm}bool Base\+Reader\+::can\+\_\+u\+\_\+read (
\begin{DoxyParamCaption}
\item[{const std\+::string \&}]{\+\_\+filename}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a00338_a29f61a3902841c6b006d57614a05a53f}


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{a00263_ac6c13ef8620cd0b294f9baa84ea4f891}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+O\+F\+F\+Reader\+\_\+}, \hyperlink{a00267_a9c43733b62e832cef5b64a8bf659578b}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+}, and \hyperlink{a00265_a463a2acedbc0bd11bc5d999b26fe6cca}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+O\+M\+Reader\+\_\+}.



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

\hypertarget{a00338_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[{get\+\_\+extensions}]{\setlength{\rightskip}{0pt plus 5cm}virtual std\+::string Open\+Mesh\+::\+I\+O\+::\+Base\+Reader\+::get\+\_\+extensions (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}}\label{a00338_a9e76bc7b1b46b7a8b4922d8ca5934419}
Returns a string with the accepted file extensions separated by a whitespace and in small caps. 

Implemented in \hyperlink{a00263_a8bf22988555c8022bd3b7784aa4691c1}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+O\+F\+F\+Reader\+\_\+}, \hyperlink{a00267_acd28ddaf59a56588b3d9455ca5499b07}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+}, \hyperlink{a00269_a1313e21a04264133ffca2be46c47697f}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+S\+T\+L\+Reader\+\_\+}, \hyperlink{a00265_a30052228ea2465a177dec2aa96989923}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+O\+M\+Reader\+\_\+}, and \hyperlink{a00261_a70292cd3b5a1a03623f6eedc96b6d704}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+O\+B\+J\+Reader\+\_\+}.

\hypertarget{a00338_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[{read}]{\setlength{\rightskip}{0pt plus 5cm}virtual bool Open\+Mesh\+::\+I\+O\+::\+Base\+Reader\+::read (
\begin{DoxyParamCaption}
\item[{const std\+::string \&}]{\+\_\+filename, }
\item[{{\bf Base\+Importer} \&}]{\+\_\+bi, }
\item[{{\bf Options} \&}]{\+\_\+opt}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [pure virtual]}}}\label{a00338_af4a32645528c1bf2043a9259b172f411}
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{a00941}{Options} can be passed via \+\_\+opt. After execution \+\_\+opt contains the \hyperlink{a00941}{Options} that were available 

Implemented in \hyperlink{a00263_ae6abbcd58b42708cdaf454a92a8e42c3}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+O\+F\+F\+Reader\+\_\+}, \hyperlink{a00267_aab6bc64265a3c22d09dde93e9e539ef5}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+}, \hyperlink{a00269_ab13615c05aef446846cf177b439bdeb7}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+S\+T\+L\+Reader\+\_\+}, \hyperlink{a00265_a882837d0b59be32741d8d9e7578f3f62}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+O\+M\+Reader\+\_\+}, and \hyperlink{a00261_a63954abd80bd199f5e6bd76e2346cd34}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+O\+B\+J\+Reader\+\_\+}.

\hypertarget{a00338_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[{read}]{\setlength{\rightskip}{0pt plus 5cm}virtual bool Open\+Mesh\+::\+I\+O\+::\+Base\+Reader\+::read (
\begin{DoxyParamCaption}
\item[{std\+::istream \&}]{\+\_\+is, }
\item[{{\bf Base\+Importer} \&}]{\+\_\+bi, }
\item[{{\bf Options} \&}]{\+\_\+opt}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [pure virtual]}}}\label{a00338_a0fd4df36decf91cd91a7f363aae56065}
Reads a mesh given by a std\+::stream. This method usually uses the same stream reading method that read uses. \hyperlink{a00941}{Options} can be passed via \+\_\+opt. After execution \+\_\+opt contains the \hyperlink{a00941}{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{a00263_aa94f52dc263700daa126a32ec1018e2f}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+O\+F\+F\+Reader\+\_\+}, \hyperlink{a00267_ad635f4e78958b38147aad4b0ab910c45}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+}, \hyperlink{a00269_ab0015a00f47a24d94dde0ee81a76666a}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+S\+T\+L\+Reader\+\_\+}, \hyperlink{a00265_a9a4d62c85043026f4ce5a96ec8edda96}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+O\+M\+Reader\+\_\+}, and \hyperlink{a00261_a3aa2dc8668159e54b09cc573a89b49be}{Open\+Mesh\+::\+I\+O\+::\+\_\+\+O\+B\+J\+Reader\+\_\+}.



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