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


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

Inheritance diagram for Open\+Mesh\+:\+:IO\+:\+:\+\_\+\+P\+L\+Y\+Reader\+\_\+\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{a08512}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{a08520}{Element\+Info}
\item 
struct \hyperlink{a08516}{Property\+Info}
\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08512_acb198628458833f9a70785b77fa7e7de}\label{a08512_acb198628458833f9a70785b77fa7e7de}} 
enum {\bfseries Value\+Type} \{ \newline
{\bfseries Unsupported}, 
{\bfseries Value\+Type\+I\+N\+T8}, 
{\bfseries Value\+Type\+C\+H\+AR}, 
{\bfseries Value\+Type\+U\+I\+N\+T8}, 
\newline
{\bfseries Value\+Type\+U\+C\+H\+AR}, 
{\bfseries Value\+Type\+I\+N\+T16}, 
{\bfseries Value\+Type\+S\+H\+O\+RT}, 
{\bfseries Value\+Type\+U\+I\+N\+T16}, 
\newline
{\bfseries Value\+Type\+U\+S\+H\+O\+RT}, 
{\bfseries Value\+Type\+I\+N\+T32}, 
{\bfseries Value\+Type\+I\+NT}, 
{\bfseries Value\+Type\+U\+I\+N\+T32}, 
\newline
{\bfseries Value\+Type\+U\+I\+NT}, 
{\bfseries Value\+Type\+F\+L\+O\+A\+T32}, 
{\bfseries Value\+Type\+F\+L\+O\+AT}, 
{\bfseries Value\+Type\+F\+L\+O\+A\+T64}, 
\newline
{\bfseries Value\+Type\+D\+O\+U\+B\+LE}
 \}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08512_aa152e491c36d172e79396c2ebe0d17d0}\label{a08512_aa152e491c36d172e79396c2ebe0d17d0}} 
std\+::string \hyperlink{a08512_aa152e491c36d172e79396c2ebe0d17d0}{get\+\_\+description} () const
\begin{DoxyCompactList}\small\item\em Returns a brief description of the file type that can be parsed. \end{DoxyCompactList}\item 
std\+::string \hyperlink{a08512_a076d4d6d14f4c1ac9f963b135f86c8b4}{get\+\_\+extensions} () const
\item 
\mbox{\Hypertarget{a08512_a2485a4e014c709fc3c4cbe96b3c3bc9c}\label{a08512_a2485a4e014c709fc3c4cbe96b3c3bc9c}} 
std\+::string \hyperlink{a08512_a2485a4e014c709fc3c4cbe96b3c3bc9c}{get\+\_\+magic} () const
\begin{DoxyCompactList}\small\item\em Return magic bits used to determine file format. \end{DoxyCompactList}\item 
bool \hyperlink{a08512_aab6bc64265a3c22d09dde93e9e539ef5}{read} (const std\+::string \&\+\_\+filename, \hyperlink{a08468}{Base\+Importer} \&\+\_\+bi, \hyperlink{a08480}{Options} \&\+\_\+opt)
\item 
bool \hyperlink{a08512_ad635f4e78958b38147aad4b0ab910c45}{read} (std\+::istream \&\+\_\+is, \hyperlink{a08468}{Base\+Importer} \&\+\_\+bi, \hyperlink{a08480}{Options} \&\+\_\+opt)
\item 
bool \hyperlink{a08512_aa9cc1766e83cef52775f335e178dc5b4}{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 
\mbox{\Hypertarget{a08512_a683b734ff9c6a621dd40196f62f469c9}\label{a08512_a683b734ff9c6a621dd40196f62f469c9}} 
enum {\bfseries Property} \{ \newline
{\bfseries X\+C\+O\+O\+RD}, 
{\bfseries Y\+C\+O\+O\+RD}, 
{\bfseries Z\+C\+O\+O\+RD}, 
{\bfseries T\+E\+XX}, 
\newline
{\bfseries T\+E\+XY}, 
{\bfseries C\+O\+L\+O\+R\+R\+ED}, 
{\bfseries C\+O\+L\+O\+R\+G\+R\+E\+EN}, 
{\bfseries C\+O\+L\+O\+R\+B\+L\+UE}, 
\newline
{\bfseries C\+O\+L\+O\+R\+A\+L\+P\+HA}, 
{\bfseries X\+N\+O\+RM}, 
{\bfseries Y\+N\+O\+RM}, 
{\bfseries Z\+N\+O\+RM}, 
\newline
{\bfseries C\+U\+S\+T\+O\+M\+\_\+\+P\+R\+OP}, 
{\bfseries V\+E\+R\+T\+E\+X\+\_\+\+I\+N\+D\+I\+C\+ES}, 
{\bfseries U\+N\+S\+U\+P\+P\+O\+R\+T\+ED}
 \}
\item 
\mbox{\Hypertarget{a08512_a12c003be5a3147aa99a124482885933b}\label{a08512_a12c003be5a3147aa99a124482885933b}} 
enum {\bfseries Element} \{ {\bfseries V\+E\+R\+T\+EX}, 
{\bfseries F\+A\+CE}, 
{\bfseries U\+N\+K\+N\+O\+WN}
 \}
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08512_ae15a56d1c0ea5ef90a7cf11c90862b8a}\label{a08512_ae15a56d1c0ea5ef90a7cf11c90862b8a}} 
bool {\bfseries can\+\_\+u\+\_\+read} (std\+::istream \&\+\_\+is) const
\item 
\mbox{\Hypertarget{a08512_afc365e8c64fdafd1e25c2cc3b3c34d98}\label{a08512_afc365e8c64fdafd1e25c2cc3b3c34d98}} 
bool {\bfseries read\+\_\+ascii} (std\+::istream \&\+\_\+in, \hyperlink{a08468}{Base\+Importer} \&\+\_\+bi, const \hyperlink{a08480}{Options} \&\+\_\+opt) const
\item 
\mbox{\Hypertarget{a08512_ae93ad414e8b9b5b7f5efe05cfbf8c872}\label{a08512_ae93ad414e8b9b5b7f5efe05cfbf8c872}} 
bool {\bfseries read\+\_\+binary} (std\+::istream \&\+\_\+in, \hyperlink{a08468}{Base\+Importer} \&\+\_\+bi, bool swap, const \hyperlink{a08480}{Options} \&\+\_\+opt) const
\item 
\mbox{\Hypertarget{a08512_ad53a1891055883a6c63ff4b81407f13f}\label{a08512_ad53a1891055883a6c63ff4b81407f13f}} 
float {\bfseries read\+To\+Float\+Value} (Value\+Type \+\_\+type, std\+::fstream \&\+\_\+in) const
\item 
\mbox{\Hypertarget{a08512_a3940e29623a7cd2753f6c760d33a0b5d}\label{a08512_a3940e29623a7cd2753f6c760d33a0b5d}} 
void {\bfseries read\+Value} (Value\+Type \+\_\+type, std\+::istream \&\+\_\+in, float \&\+\_\+value) const
\item 
\mbox{\Hypertarget{a08512_a7ce1428a81fd58b2ebb1c53dde41371d}\label{a08512_a7ce1428a81fd58b2ebb1c53dde41371d}} 
void {\bfseries read\+Value} (Value\+Type \+\_\+type, std\+::istream \&\+\_\+in, double \&\+\_\+value) const
\item 
\mbox{\Hypertarget{a08512_ae608c0b16b9c7494cd4571048f5f86c6}\label{a08512_ae608c0b16b9c7494cd4571048f5f86c6}} 
void {\bfseries read\+Value} (Value\+Type \+\_\+type, std\+::istream \&\+\_\+in, unsigned int \&\+\_\+value) const
\item 
\mbox{\Hypertarget{a08512_acd6977f0ddb4fef969e30940933c9087}\label{a08512_acd6977f0ddb4fef969e30940933c9087}} 
void {\bfseries read\+Value} (Value\+Type \+\_\+type, std\+::istream \&\+\_\+in, unsigned short \&\+\_\+value) const
\item 
\mbox{\Hypertarget{a08512_acd33979b5224bdbbd1acbcba94d0822d}\label{a08512_acd33979b5224bdbbd1acbcba94d0822d}} 
void {\bfseries read\+Value} (Value\+Type \+\_\+type, std\+::istream \&\+\_\+in, unsigned char \&\+\_\+value) const
\item 
\mbox{\Hypertarget{a08512_a4ae231390d9a177ed0012ab7855d414b}\label{a08512_a4ae231390d9a177ed0012ab7855d414b}} 
void {\bfseries read\+Value} (Value\+Type \+\_\+type, std\+::istream \&\+\_\+in, int \&\+\_\+value) const
\item 
\mbox{\Hypertarget{a08512_a5ad9ec0e59d59818633b26ab7c43f5e1}\label{a08512_a5ad9ec0e59d59818633b26ab7c43f5e1}} 
void {\bfseries read\+Value} (Value\+Type \+\_\+type, std\+::istream \&\+\_\+in, short \&\+\_\+value) const
\item 
\mbox{\Hypertarget{a08512_a6e094ef228124bee4e4966c82973091a}\label{a08512_a6e094ef228124bee4e4966c82973091a}} 
void {\bfseries read\+Value} (Value\+Type \+\_\+type, std\+::istream \&\+\_\+in, signed char \&\+\_\+value) const
\item 
\mbox{\Hypertarget{a08512_af51988f176c654d845271555fda44af3}\label{a08512_af51988f176c654d845271555fda44af3}} 
void {\bfseries read\+Integer} (Value\+Type \+\_\+type, std\+::istream \&\+\_\+in, int \&\+\_\+value) const
\item 
\mbox{\Hypertarget{a08512_a03dd0214c47eeecf04eef32bed0a0566}\label{a08512_a03dd0214c47eeecf04eef32bed0a0566}} 
void {\bfseries read\+Integer} (Value\+Type \+\_\+type, std\+::istream \&\+\_\+in, unsigned int \&\+\_\+value) const
\item 
\mbox{\Hypertarget{a08512_afa1d2f03b61334e0eec466f458e831c5}\label{a08512_afa1d2f03b61334e0eec466f458e831c5}} 
void \hyperlink{a08512_afa1d2f03b61334e0eec466f458e831c5}{consume\+\_\+input} (std\+::istream \&\+\_\+in, int \+\_\+count) const
\begin{DoxyCompactList}\small\item\em Read unsupported properties in P\+LY file. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08512_a630fc7f852da75cfba7080c6e6044f56}\label{a08512_a630fc7f852da75cfba7080c6e6044f56}} 
{\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
\item 
\mbox{\Hypertarget{a08512_a4947e87511cf9b6b638d929486c882cb}\label{a08512_a4947e87511cf9b6b638d929486c882cb}} 
{\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
\item 
\mbox{\Hypertarget{a08512_ab84be8e77a46ae375cb84aa22904e0db}\label{a08512_ab84be8e77a46ae375cb84aa22904e0db}} 
{\footnotesize template$<$bool binary, typename T , typename Handle $>$ }\\void {\bfseries read\+Create\+Custom\+Property} (std\+::istream \&\+\_\+in, \hyperlink{a08468}{Base\+Importer} \&\+\_\+bi, Handle \+\_\+h, const std\+::string \&\+\_\+prop\+Name, const Value\+Type \+\_\+value\+Type, const Value\+Type \+\_\+list\+Type) const
\item 
\mbox{\Hypertarget{a08512_a0feffa75a1fc515310274424a64b42d0}\label{a08512_a0feffa75a1fc515310274424a64b42d0}} 
{\footnotesize template$<$bool binary, typename Handle $>$ }\\void {\bfseries read\+Custom\+Property} (std\+::istream \&\+\_\+in, \hyperlink{a08468}{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
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08512_a4abec78e4cce22b4183e6af9e639c76e}\label{a08512_a4abec78e4cce22b4183e6af9e639c76e}} 
unsigned char {\bfseries buff} \mbox{[}8\mbox{]}
\item 
\mbox{\Hypertarget{a08512_a289a431ea83f178582bf4848eac22c91}\label{a08512_a289a431ea83f178582bf4848eac22c91}} 
\hyperlink{a08480}{Options} \hyperlink{a08512_a289a431ea83f178582bf4848eac22c91}{options\+\_\+}
\begin{DoxyCompactList}\small\item\em Available per file options for reading. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08512_ab527d59092c4627074926059d2ed7fb9}\label{a08512_ab527d59092c4627074926059d2ed7fb9}} 
\hyperlink{a08480}{Options} \hyperlink{a08512_ab527d59092c4627074926059d2ed7fb9}{user\+Options\+\_\+}
\begin{DoxyCompactList}\small\item\em \hyperlink{a08480}{Options} that the user wants to read. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08512_a1d43a8effb3d076f926c05e42b140560}\label{a08512_a1d43a8effb3d076f926c05e42b140560}} 
unsigned int {\bfseries vertex\+Count\+\_\+}
\item 
\mbox{\Hypertarget{a08512_a196c74968790014c49decd3f10306c87}\label{a08512_a196c74968790014c49decd3f10306c87}} 
unsigned int {\bfseries face\+Count\+\_\+}
\item 
\mbox{\Hypertarget{a08512_a713877b6fac4b087630266f6dfbf18d5}\label{a08512_a713877b6fac4b087630266f6dfbf18d5}} 
uint {\bfseries vertex\+Dimension\+\_\+}
\item 
\mbox{\Hypertarget{a08512_a094d0ef6bb858cfd8567f185c4630436}\label{a08512_a094d0ef6bb858cfd8567f185c4630436}} 
std\+::map$<$ Value\+Type, int $>$ \hyperlink{a08512_a094d0ef6bb858cfd8567f185c4630436}{scalar\+\_\+size\+\_\+}
\begin{DoxyCompactList}\small\item\em Stores sizes of property types. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08512_a14404a17e2023194abdf35ffbf5d334b}\label{a08512_a14404a17e2023194abdf35ffbf5d334b}} 
std\+::vector$<$ \hyperlink{a08520}{Element\+Info} $>$ {\bfseries elements\+\_\+}
\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
Implementation of the P\+LY format reader. This class is singleton\textquotesingle{}ed by \hyperlink{a08912}{SingletonT} 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 94 of file P\+L\+Y\+Reader.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{a08512_aa9cc1766e83cef52775f335e178dc5b4}\label{a08512_aa9cc1766e83cef52775f335e178dc5b4}} 
\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{\texorpdfstring{can\+\_\+u\+\_\+read()}{can\_u\_read()}}
{\footnotesize\ttfamily 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]}}



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



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

\mbox{\Hypertarget{a08512_a076d4d6d14f4c1ac9f963b135f86c8b4}\label{a08512_a076d4d6d14f4c1ac9f963b135f86c8b4}} 
\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{\texorpdfstring{get\+\_\+extensions()}{get\_extensions()}}
{\footnotesize\ttfamily std\+::string Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+\+::get\+\_\+extensions (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

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

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



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

\mbox{\Hypertarget{a08512_aab6bc64265a3c22d09dde93e9e539ef5}\label{a08512_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{\texorpdfstring{read()}{read()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily bool Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+\+::read (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{\+\_\+filename,  }\item[{\hyperlink{a08468}{Base\+Importer} \&}]{\+\_\+bi,  }\item[{\hyperlink{a08480}{Options} \&}]{\+\_\+opt }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [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{a08480}{Options} can be passed via \+\_\+opt. After execution \+\_\+opt contains the \hyperlink{a08480}{Options} that were available 

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



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

\mbox{\Hypertarget{a08512_ad635f4e78958b38147aad4b0ab910c45}\label{a08512_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{\texorpdfstring{read()}{read()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily bool Open\+Mesh\+::\+I\+O\+::\+\_\+\+P\+L\+Y\+Reader\+\_\+\+::read (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{\+\_\+is,  }\item[{\hyperlink{a08468}{Base\+Importer} \&}]{\+\_\+bi,  }\item[{\hyperlink{a08480}{Options} \&}]{\+\_\+opt }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}

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

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

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



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



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