\hypertarget{a00267}{\section{Open\+Mesh\+:\+:I\+O\+:\+:\+\_\+\+P\+L\+Y\+Reader\+\_\+ Class Reference}
\label{a00267}\index{Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+@{Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+}}
}


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

Inheritance diagram for Open\+Mesh\+:\+:I\+O\+:\+:\+\_\+\+P\+L\+Y\+Reader\+\_\+\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{a00267}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{a01032}{Property\+Info}
\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00267_acb198628458833f9a70785b77fa7e7de}{enum {\bfseries Value\+Type} \{ \\*
{\bfseries Unsupported}, 
{\bfseries Value\+Type\+I\+N\+T8}, 
{\bfseries Value\+Type\+C\+H\+A\+R}, 
{\bfseries Value\+Type\+U\+I\+N\+T8}, 
\\*
{\bfseries Value\+Type\+U\+C\+H\+A\+R}, 
{\bfseries Value\+Type\+I\+N\+T16}, 
{\bfseries Value\+Type\+S\+H\+O\+R\+T}, 
{\bfseries Value\+Type\+U\+I\+N\+T16}, 
\\*
{\bfseries Value\+Type\+U\+S\+H\+O\+R\+T}, 
{\bfseries Value\+Type\+I\+N\+T32}, 
{\bfseries Value\+Type\+I\+N\+T}, 
{\bfseries Value\+Type\+U\+I\+N\+T32}, 
\\*
{\bfseries Value\+Type\+U\+I\+N\+T}, 
{\bfseries Value\+Type\+F\+L\+O\+A\+T32}, 
{\bfseries Value\+Type\+F\+L\+O\+A\+T}, 
{\bfseries Value\+Type\+F\+L\+O\+A\+T64}, 
\\*
{\bfseries Value\+Type\+D\+O\+U\+B\+L\+E}
 \}}\label{a00267_acb198628458833f9a70785b77fa7e7de}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00267_a83c73da9ffe1e340272137209f409829}{std\+::string \hyperlink{a00267_a83c73da9ffe1e340272137209f409829}{get\+\_\+description} () const }\label{a00267_a83c73da9ffe1e340272137209f409829}

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

\begin{DoxyCompactList}\small\item\em Return magic bits used to determine file format. \end{DoxyCompactList}\item 
bool \hyperlink{a00267_aab6bc64265a3c22d09dde93e9e539ef5}{read} (const std\+::string \&\+\_\+filename, \hyperlink{a00319}{Base\+Importer} \&\+\_\+bi, \hyperlink{a00941}{Options} \&\+\_\+opt)
\item 
bool \hyperlink{a00267_ad635f4e78958b38147aad4b0ab910c45}{read} (std\+::istream \&\+\_\+is, \hyperlink{a00319}{Base\+Importer} \&\+\_\+bi, \hyperlink{a00941}{Options} \&\+\_\+opt)
\item 
bool \hyperlink{a00267_a9c43733b62e832cef5b64a8bf659578b}{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*{Private Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00267_a683b734ff9c6a621dd40196f62f469c9}{enum {\bfseries Property} \{ \\*
{\bfseries X\+C\+O\+O\+R\+D}, 
{\bfseries Y\+C\+O\+O\+R\+D}, 
{\bfseries Z\+C\+O\+O\+R\+D}, 
{\bfseries T\+E\+X\+X}, 
\\*
{\bfseries T\+E\+X\+Y}, 
{\bfseries C\+O\+L\+O\+R\+R\+E\+D}, 
{\bfseries C\+O\+L\+O\+R\+G\+R\+E\+E\+N}, 
{\bfseries C\+O\+L\+O\+R\+B\+L\+U\+E}, 
\\*
{\bfseries C\+O\+L\+O\+R\+A\+L\+P\+H\+A}, 
{\bfseries X\+N\+O\+R\+M}, 
{\bfseries Y\+N\+O\+R\+M}, 
{\bfseries Z\+N\+O\+R\+M}, 
\\*
{\bfseries C\+U\+S\+T\+O\+M\+\_\+\+P\+R\+O\+P}, 
{\bfseries V\+E\+R\+T\+E\+X\+\_\+\+I\+N\+D\+I\+C\+E\+S}, 
{\bfseries U\+N\+S\+U\+P\+P\+O\+R\+T\+E\+D}
 \}}\label{a00267_a683b734ff9c6a621dd40196f62f469c9}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00267_a3ad73d9356bbb8d2dbad5e89b80071f0}{bool {\bfseries can\+\_\+u\+\_\+read} (std\+::istream \&\+\_\+is) const }\label{a00267_a3ad73d9356bbb8d2dbad5e89b80071f0}

\item 
\hypertarget{a00267_a9ceecd237fcee8edb894d644c369259b}{bool {\bfseries read\+\_\+ascii} (std\+::istream \&\+\_\+in, \hyperlink{a00319}{Base\+Importer} \&\+\_\+bi, const \hyperlink{a00941}{Options} \&\+\_\+opt) const }\label{a00267_a9ceecd237fcee8edb894d644c369259b}

\item 
\hypertarget{a00267_a1c3d2d2abc14640298d78d4df5fa4be0}{bool {\bfseries read\+\_\+binary} (std\+::istream \&\+\_\+in, \hyperlink{a00319}{Base\+Importer} \&\+\_\+bi, bool swap, const \hyperlink{a00941}{Options} \&\+\_\+opt) const }\label{a00267_a1c3d2d2abc14640298d78d4df5fa4be0}

\item 
\hypertarget{a00267_ad5cfa0c27dfe983e5c4a292984045deb}{float {\bfseries read\+To\+Float\+Value} (Value\+Type \+\_\+type, std\+::fstream \&\+\_\+in) const }\label{a00267_ad5cfa0c27dfe983e5c4a292984045deb}

\item 
\hypertarget{a00267_a2905ff53e4e3cb8300fe977bb204b7a1}{void {\bfseries read\+Value} (Value\+Type \+\_\+type, std\+::istream \&\+\_\+in, float \&\+\_\+value) const }\label{a00267_a2905ff53e4e3cb8300fe977bb204b7a1}

\item 
\hypertarget{a00267_acdcd07f8f5cdbf3a3081e94a1ce0b7fa}{void {\bfseries read\+Value} (Value\+Type \+\_\+type, std\+::istream \&\+\_\+in, double \&\+\_\+value) const }\label{a00267_acdcd07f8f5cdbf3a3081e94a1ce0b7fa}

\item 
\hypertarget{a00267_ad648dace96073e63eb811b60eb928790}{void {\bfseries read\+Value} (Value\+Type \+\_\+type, std\+::istream \&\+\_\+in, unsigned int \&\+\_\+value) const }\label{a00267_ad648dace96073e63eb811b60eb928790}

\item 
\hypertarget{a00267_acc96aa7d125be64db803b478691f722f}{void {\bfseries read\+Value} (Value\+Type \+\_\+type, std\+::istream \&\+\_\+in, unsigned short \&\+\_\+value) const }\label{a00267_acc96aa7d125be64db803b478691f722f}

\item 
\hypertarget{a00267_ae40dc34d646004618eabb661316ef19b}{void {\bfseries read\+Value} (Value\+Type \+\_\+type, std\+::istream \&\+\_\+in, unsigned char \&\+\_\+value) const }\label{a00267_ae40dc34d646004618eabb661316ef19b}

\item 
\hypertarget{a00267_ab808ac886d972ae0f91982f7986900c9}{void {\bfseries read\+Value} (Value\+Type \+\_\+type, std\+::istream \&\+\_\+in, int \&\+\_\+value) const }\label{a00267_ab808ac886d972ae0f91982f7986900c9}

\item 
\hypertarget{a00267_aa1d8f1ec81a3ce6f19a08c2a06841edf}{void {\bfseries read\+Value} (Value\+Type \+\_\+type, std\+::istream \&\+\_\+in, short \&\+\_\+value) const }\label{a00267_aa1d8f1ec81a3ce6f19a08c2a06841edf}

\item 
\hypertarget{a00267_af0216c197d3b2d8af642a401e77b62ed}{void {\bfseries read\+Value} (Value\+Type \+\_\+type, std\+::istream \&\+\_\+in, signed char \&\+\_\+value) const }\label{a00267_af0216c197d3b2d8af642a401e77b62ed}

\item 
\hypertarget{a00267_a9e04df00e9efc447d3d0ea2c5b1b58d0}{void {\bfseries read\+Integer} (Value\+Type \+\_\+type, std\+::istream \&\+\_\+in, int \&\+\_\+value) const }\label{a00267_a9e04df00e9efc447d3d0ea2c5b1b58d0}

\item 
\hypertarget{a00267_a4014e0fd49e34ad0c479dcc40186aa8b}{void {\bfseries read\+Integer} (Value\+Type \+\_\+type, std\+::istream \&\+\_\+in, unsigned int \&\+\_\+value) const }\label{a00267_a4014e0fd49e34ad0c479dcc40186aa8b}

\item 
\hypertarget{a00267_a13b0059938fe5fc5f35c33b314fc2ec5}{void \hyperlink{a00267_a13b0059938fe5fc5f35c33b314fc2ec5}{consume\+\_\+input} (std\+::istream \&\+\_\+in, int \+\_\+count) const }\label{a00267_a13b0059938fe5fc5f35c33b314fc2ec5}

\begin{DoxyCompactList}\small\item\em Read unsupported properties in P\+L\+Y file. \end{DoxyCompactList}\item 
\hypertarget{a00267_abc20ff501959a527c56150b9d2c7add8}{{\footnotesize template$<$typename T $>$ }\\void {\bfseries read} (\+\_\+\+P\+L\+Y\+Reader\+\_\+\+::\+Value\+Type \+\_\+type, std\+::istream \&\+\_\+in, T \&\+\_\+value, Open\+Mesh\+::\+Gen\+Prog\+::\+True\+Type) const }\label{a00267_abc20ff501959a527c56150b9d2c7add8}

\item 
\hypertarget{a00267_abbe46ecdb098e2a19d3648be5ff93133}{{\footnotesize template$<$typename T $>$ }\\void {\bfseries read} (\+\_\+\+P\+L\+Y\+Reader\+\_\+\+::\+Value\+Type \+\_\+type, std\+::istream \&\+\_\+in, T \&\+\_\+value, Open\+Mesh\+::\+Gen\+Prog\+::\+False\+Type) const }\label{a00267_abbe46ecdb098e2a19d3648be5ff93133}

\item 
\hypertarget{a00267_a43c7559d96e5b320ff2d9a4664ae1965}{{\footnotesize template$<$bool binary, typename T , typename Handle $>$ }\\void {\bfseries read\+Create\+Custom\+Property} (std\+::istream \&\+\_\+in, \hyperlink{a00319}{Base\+Importer} \&\+\_\+bi, Handle \+\_\+h, const std\+::string \&\+\_\+prop\+Name, const Value\+Type \+\_\+value\+Type, const Value\+Type \+\_\+list\+Type) const }\label{a00267_a43c7559d96e5b320ff2d9a4664ae1965}

\item 
\hypertarget{a00267_afece45393267cfcdea550dc2c0d1932d}{{\footnotesize template$<$bool binary, typename Handle $>$ }\\void {\bfseries read\+Custom\+Property} (std\+::istream \&\+\_\+in, \hyperlink{a00319}{Base\+Importer} \&\+\_\+bi, Handle \+\_\+h, const std\+::string \&\+\_\+prop\+Name, const \+\_\+\+P\+L\+Y\+Reader\+\_\+\+::\+Value\+Type \+\_\+value\+Type, const \+\_\+\+P\+L\+Y\+Reader\+\_\+\+::\+Value\+Type \+\_\+list\+Index\+Type) const }\label{a00267_afece45393267cfcdea550dc2c0d1932d}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00267_a4abec78e4cce22b4183e6af9e639c76e}{unsigned char {\bfseries buff} \mbox{[}8\mbox{]}}\label{a00267_a4abec78e4cce22b4183e6af9e639c76e}

\item 
\hypertarget{a00267_a289a431ea83f178582bf4848eac22c91}{\hyperlink{a00941}{Options} \hyperlink{a00267_a289a431ea83f178582bf4848eac22c91}{options\+\_\+}}\label{a00267_a289a431ea83f178582bf4848eac22c91}

\begin{DoxyCompactList}\small\item\em Available per file options for reading. \end{DoxyCompactList}\item 
\hypertarget{a00267_ab527d59092c4627074926059d2ed7fb9}{\hyperlink{a00941}{Options} \hyperlink{a00267_ab527d59092c4627074926059d2ed7fb9}{user\+Options\+\_\+}}\label{a00267_ab527d59092c4627074926059d2ed7fb9}

\begin{DoxyCompactList}\small\item\em \hyperlink{a00941}{Options} that the user wants to read. \end{DoxyCompactList}\item 
\hypertarget{a00267_a1d43a8effb3d076f926c05e42b140560}{unsigned int {\bfseries vertex\+Count\+\_\+}}\label{a00267_a1d43a8effb3d076f926c05e42b140560}

\item 
\hypertarget{a00267_a196c74968790014c49decd3f10306c87}{unsigned int {\bfseries face\+Count\+\_\+}}\label{a00267_a196c74968790014c49decd3f10306c87}

\item 
\hypertarget{a00267_a25515348b6579222a6892f22177fc650}{Value\+Type {\bfseries vertex\+Type\+\_\+}}\label{a00267_a25515348b6579222a6892f22177fc650}

\item 
\hypertarget{a00267_a713877b6fac4b087630266f6dfbf18d5}{uint {\bfseries vertex\+Dimension\+\_\+}}\label{a00267_a713877b6fac4b087630266f6dfbf18d5}

\item 
\hypertarget{a00267_a094d0ef6bb858cfd8567f185c4630436}{std\+::map$<$ Value\+Type, int $>$ \hyperlink{a00267_a094d0ef6bb858cfd8567f185c4630436}{scalar\+\_\+size\+\_\+}}\label{a00267_a094d0ef6bb858cfd8567f185c4630436}

\begin{DoxyCompactList}\small\item\em Stores sizes of property types. \end{DoxyCompactList}\item 
\hypertarget{a00267_a09366ecbefdff798f0be05b2c1bcdbe5}{std\+::vector$<$ \hyperlink{a01032}{Property\+Info} $>$ {\bfseries vertex\+Properties\+\_\+}}\label{a00267_a09366ecbefdff798f0be05b2c1bcdbe5}

\item 
\hypertarget{a00267_a8d9b95cc9cfc81bbed40168bd0d2a91c}{std\+::vector$<$ \hyperlink{a01032}{Property\+Info} $>$ {\bfseries face\+Properties\+\_\+}}\label{a00267_a8d9b95cc9cfc81bbed40168bd0d2a91c}

\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
Implementation of the P\+L\+Y format reader. This class is singleton'ed by \hyperlink{a01181}{Singleton\+T} to O\+F\+F\+Reader. It can read custom properties, accessible via the name of the custom properties. List properties has the type std\+::vector$<$\+Type$>$. 

Definition at line 99 of file P\+L\+Y\+Reader.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a00267_a9c43733b62e832cef5b64a8bf659578b}{\index{Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+@{Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+}!can\+\_\+u\+\_\+read@{can\+\_\+u\+\_\+read}}
\index{can\+\_\+u\+\_\+read@{can\+\_\+u\+\_\+read}!Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+@{Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+}}
\subsubsection[{can\+\_\+u\+\_\+read}]{\setlength{\rightskip}{0pt plus 5cm}bool Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+\+::can\+\_\+u\+\_\+read (
\begin{DoxyParamCaption}
\item[{const std\+::string \&}]{\+\_\+filename}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a00267_a9c43733b62e832cef5b64a8bf659578b}


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 from \hyperlink{a00338_a29f61a3902841c6b006d57614a05a53f}{Open\+Mesh\+::\+I\+O\+::\+Base\+Reader}.



Definition at line 953 of file P\+L\+Y\+Reader.\+cc.

\hypertarget{a00267_acd28ddaf59a56588b3d9455ca5499b07}{\index{Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+@{Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+}!get\+\_\+extensions@{get\+\_\+extensions}}
\index{get\+\_\+extensions@{get\+\_\+extensions}!Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+@{Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+}}
\subsubsection[{get\+\_\+extensions}]{\setlength{\rightskip}{0pt plus 5cm}std\+::string Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+\+::get\+\_\+extensions (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{a00267_acd28ddaf59a56588b3d9455ca5499b07}
Returns a string with the accepted file extensions separated by a whitespace and in small caps. 

Implements \hyperlink{a00338_a9e76bc7b1b46b7a8b4922d8ca5934419}{Open\+Mesh\+::\+I\+O\+::\+Base\+Reader}.



Definition at line 106 of file P\+L\+Y\+Reader.\+hh.

\hypertarget{a00267_aab6bc64265a3c22d09dde93e9e539ef5}{\index{Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+@{Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+}!read@{read}}
\index{read@{read}!Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+@{Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+}}
\subsubsection[{read}]{\setlength{\rightskip}{0pt plus 5cm}bool Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+\+::read (
\begin{DoxyParamCaption}
\item[{const std\+::string \&}]{\+\_\+filename, }
\item[{{\bf Base\+Importer} \&}]{\+\_\+bi, }
\item[{{\bf Options} \&}]{\+\_\+opt}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a00267_aab6bc64265a3c22d09dde93e9e539ef5}
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 

Implements \hyperlink{a00338_af4a32645528c1bf2043a9259b172f411}{Open\+Mesh\+::\+I\+O\+::\+Base\+Reader}.



Definition at line 113 of file P\+L\+Y\+Reader.\+cc.

\hypertarget{a00267_ad635f4e78958b38147aad4b0ab910c45}{\index{Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+@{Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+}!read@{read}}
\index{read@{read}!Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+@{Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+}}
\subsubsection[{read}]{\setlength{\rightskip}{0pt plus 5cm}bool Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+\+::read (
\begin{DoxyParamCaption}
\item[{std\+::istream \&}]{\+\_\+is, }
\item[{{\bf Base\+Importer} \&}]{\+\_\+bi, }
\item[{{\bf Options} \&}]{\+\_\+opt}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a00267_ad635f4e78958b38147aad4b0ab910c45}
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. 

Implements \hyperlink{a00338_a0fd4df36decf91cd91a7f363aae56065}{Open\+Mesh\+::\+I\+O\+::\+Base\+Reader}.



Definition at line 131 of file P\+L\+Y\+Reader.\+cc.



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/P\+L\+Y\+Reader.\+hh\item 
libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Core/\+I\+O/reader/P\+L\+Y\+Reader.\+cc\end{DoxyCompactItemize}
