Developer Documentation
OpenMesh::IO::_PLYReader_ Class Reference

#include <OpenFlipper/libs_required/OpenMesh/src/OpenMesh/Core/IO/reader/PLYReader.hh>

Inheritance diagram for OpenMesh::IO::_PLYReader_:
OpenMesh::IO::BaseReader

Classes

struct  ElementInfo
 
struct  PropertyInfo
 

Public Types

enum  ValueType {
  Unsupported , ValueTypeINT8 , ValueTypeCHAR , ValueTypeUINT8 ,
  ValueTypeUCHAR , ValueTypeINT16 , ValueTypeSHORT , ValueTypeUINT16 ,
  ValueTypeUSHORT , ValueTypeINT32 , ValueTypeINT , ValueTypeUINT32 ,
  ValueTypeUINT , ValueTypeFLOAT32 , ValueTypeFLOAT , ValueTypeFLOAT64 ,
  ValueTypeDOUBLE
}
 

Public Member Functions

std::string get_description () const override
 Returns a brief description of the file type that can be parsed. More...
 
std::string get_extensions () const override
 
std::string get_magic () const override
 Return magic bits used to determine file format. More...
 
bool read (const std::string &_filename, BaseImporter &_bi, Options &_opt) override
 
bool read (std::istream &_is, BaseImporter &_bi, Options &_opt) override
 
bool can_u_read (const std::string &_filename) const override
 Returns true if writer can parse _filename (checks extension). _filename can also provide an extension without a name for a file e.g. _filename == "om" checks, if the reader can read the "om" extension. More...
 
- Public Member Functions inherited from OpenMesh::IO::BaseReader
virtual ~BaseReader ()
 Destructor. More...
 
virtual std::string get_description () const =0
 Returns a brief description of the file type that can be parsed. More...
 
virtual std::string get_extensions () const =0
 
virtual std::string get_magic () const
 Return magic bits used to determine file format. More...
 
virtual bool read (const std::string &_filename, BaseImporter &_bi, Options &_opt)=0
 
virtual bool read (std::istream &_is, BaseImporter &_bi, Options &_opt)=0
 
virtual bool can_u_read (const std::string &_filename) const
 Returns true if writer can parse _filename (checks extension). _filename can also provide an extension without a name for a file e.g. _filename == "om" checks, if the reader can read the "om" extension. More...
 

Private Types

enum  Property {
  XCOORD , YCOORD , ZCOORD , TEXX ,
  TEXY , COLORRED , COLORGREEN , COLORBLUE ,
  COLORALPHA , XNORM , YNORM , ZNORM ,
  CUSTOM_PROP , VERTEX_INDICES , TEXCOORD , TEXNUMBER ,
  UNSUPPORTED
}
 
enum  Element { VERTEX , FACE , UNKNOWN }
 

Private Member Functions

bool can_u_read (std::istream &_is) const
 
bool read_ascii (std::istream &_in, BaseImporter &_bi, const Options &_opt) const
 
bool read_binary (std::istream &_in, BaseImporter &_bi, bool swap, const Options &_opt) const
 
void readValue (ValueType _type, std::istream &_in, float &_value) const
 
void readValue (ValueType _type, std::istream &_in, double &_value) const
 
void readValue (ValueType _type, std::istream &_in, unsigned int &_value) const
 
void readValue (ValueType _type, std::istream &_in, unsigned short &_value) const
 
void readValue (ValueType _type, std::istream &_in, unsigned char &_value) const
 
void readValue (ValueType _type, std::istream &_in, int &_value) const
 
void readValue (ValueType _type, std::istream &_in, short &_value) const
 
void readValue (ValueType _type, std::istream &_in, signed char &_value) const
 
template<typename T >
void readInteger (ValueType _type, std::istream &_in, T &_value) const
 
void consume_input (std::istream &_in, int _count) const
 Read unsupported properties in PLY file. More...
 
template<typename T >
void read (_PLYReader_::ValueType _type, std::istream &_in, T &_value, OpenMesh::GenProg::TrueType) const
 
template<typename T >
void read (_PLYReader_::ValueType _type, std::istream &_in, T &_value, OpenMesh::GenProg::FalseType) const
 
template<typename T >
void readInteger (_PLYReader_::ValueType _type, std::istream &_in, T &_value, OpenMesh::GenProg::TrueType) const
 
template<typename T >
void readInteger (_PLYReader_::ValueType _type, std::istream &_in, T &_value, OpenMesh::GenProg::FalseType) const
 
template<bool binary, typename T , typename Handle >
void readCreateCustomProperty (std::istream &_in, BaseImporter &_bi, Handle _h, const std::string &_propName, const ValueType _valueType, const ValueType _listType) const
 
template<bool binary, typename Handle >
void readCustomProperty (std::istream &_in, BaseImporter &_bi, Handle _h, const std::string &_propName, const _PLYReader_::ValueType _valueType, const _PLYReader_::ValueType _listIndexType) const
 

Private Attributes

unsigned char buff [8]
 
Options options_
 Available per file options for reading. More...
 
Options userOptions_
 Options that the user wants to read. More...
 
unsigned int vertexCount_
 
unsigned int faceCount_
 
uint vertexDimension_
 
std::map< ValueType, int > scalar_size_
 Stores sizes of property types. More...
 
std::vector< ElementInfoelements_
 
std::vector< std::string > texture_files_
 

Additional Inherited Members

- Protected Member Functions inherited from OpenMesh::IO::BaseReader
bool check_extension (const std::string &_fname, const std::string &_ext) const
 

Detailed Description

Implementation of the PLY format reader. This class is singleton'ed by SingletonT to OFFReader. It can read custom properties, accessible via the name of the custom properties. List properties has the type std::vector<Type>.

Definition at line 95 of file PLYReader.hh.

Member Enumeration Documentation

◆ Element

enum OpenMesh::IO::_PLYReader_::Element
private

Definition at line 197 of file PLYReader.hh.

◆ Property

enum OpenMesh::IO::_PLYReader_::Property
private

Definition at line 174 of file PLYReader.hh.

◆ ValueType

enum OpenMesh::IO::_PLYReader_::ValueType

Definition at line 115 of file PLYReader.hh.

Constructor & Destructor Documentation

◆ _PLYReader_()

OpenMesh::IO::_PLYReader_::_PLYReader_ ( )

Definition at line 81 of file PLYReader.cc.

Member Function Documentation

◆ can_u_read() [1/2]

bool OpenMesh::IO::_PLYReader_::can_u_read ( const std::string &  _filename) const
overridevirtual

Returns true if writer can parse _filename (checks extension). _filename can also provide an extension without a name for a file e.g. _filename == "om" checks, if the reader can read the "om" extension.

Parameters
_filenamecomplete name of a file or just the extension
Returns
true, if reader can read data with the given extension

Reimplemented from OpenMesh::IO::BaseReader.

Definition at line 1169 of file PLYReader.cc.

◆ can_u_read() [2/2]

bool OpenMesh::IO::_PLYReader_::can_u_read ( std::istream &  _is) const
private

Definition at line 1281 of file PLYReader.cc.

◆ consume_input()

void OpenMesh::IO::_PLYReader_::consume_input ( std::istream &  _in,
int  _count 
) const
inlineprivate

Read unsupported properties in PLY file.

Definition at line 147 of file PLYReader.hh.

◆ get_description()

std::string OpenMesh::IO::_PLYReader_::get_description ( ) const
inlineoverridevirtual

Returns a brief description of the file type that can be parsed.

Implements OpenMesh::IO::BaseReader.

Definition at line 101 of file PLYReader.hh.

◆ get_extensions()

std::string OpenMesh::IO::_PLYReader_::get_extensions ( ) const
inlineoverridevirtual

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

Implements OpenMesh::IO::BaseReader.

Definition at line 102 of file PLYReader.hh.

◆ get_magic()

std::string OpenMesh::IO::_PLYReader_::get_magic ( ) const
inlineoverridevirtual

Return magic bits used to determine file format.

Reimplemented from OpenMesh::IO::BaseReader.

Definition at line 103 of file PLYReader.hh.

◆ read() [1/4]

template<typename T >
void OpenMesh::IO::_PLYReader_::read ( _PLYReader_::ValueType  _type,
std::istream &  _in,
T &  _value,
OpenMesh::GenProg::FalseType   
) const
inlineprivate

Definition at line 223 of file PLYReader.hh.

◆ read() [2/4]

template<typename T >
void OpenMesh::IO::_PLYReader_::read ( _PLYReader_::ValueType  _type,
std::istream &  _in,
T &  _value,
OpenMesh::GenProg::TrueType   
) const
inlineprivate

Definition at line 217 of file PLYReader.hh.

◆ read() [3/4]

bool OpenMesh::IO::_PLYReader_::read ( const std::string &  _filename,
BaseImporter _bi,
Options _opt 
)
overridevirtual

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.

Options can be passed via _opt. After execution _opt contains the Options that were available

Implements OpenMesh::IO::BaseReader.

Definition at line 107 of file PLYReader.cc.

◆ read() [4/4]

bool OpenMesh::IO::_PLYReader_::read ( std::istream &  _is,
BaseImporter _bi,
Options _opt 
)
overridevirtual

Reads a mesh given by a std::stream. This method usually uses the same stream reading method that read uses. Options can be passed via _opt. After execution _opt contains the Options that were available.

Please make sure that if _is is std::ifstream, the correct std::ios_base::openmode flags are set.

Implements OpenMesh::IO::BaseReader.

Definition at line 125 of file PLYReader.cc.

◆ read_ascii()

bool OpenMesh::IO::_PLYReader_::read_ascii ( std::istream &  _in,
BaseImporter _bi,
const Options _opt 
) const
private

Definition at line 288 of file PLYReader.cc.

◆ read_binary()

bool OpenMesh::IO::_PLYReader_::read_binary ( std::istream &  _in,
BaseImporter _bi,
bool  swap,
const Options _opt 
) const
private

Definition at line 604 of file PLYReader.cc.

◆ readCreateCustomProperty()

template<bool binary, typename T , typename Handle >
void OpenMesh::IO::_PLYReader_::readCreateCustomProperty ( std::istream &  _in,
BaseImporter _bi,
Handle  _h,
const std::string &  _propName,
const ValueType  _valueType,
const ValueType  _listType 
) const
private

Definition at line 202 of file PLYReader.cc.

◆ readCustomProperty()

template<bool binary, typename Handle >
void OpenMesh::IO::_PLYReader_::readCustomProperty ( std::istream &  _in,
BaseImporter _bi,
Handle  _h,
const std::string &  _propName,
const _PLYReader_::ValueType  _valueType,
const _PLYReader_::ValueType  _listIndexType 
) const
private

Definition at line 243 of file PLYReader.cc.

◆ readInteger() [1/3]

template<typename T >
void OpenMesh::IO::_PLYReader_::readInteger ( _PLYReader_::ValueType  _type,
std::istream &  _in,
T &  _value,
OpenMesh::GenProg::FalseType   
) const
inlineprivate

Definition at line 235 of file PLYReader.hh.

◆ readInteger() [2/3]

template<typename T >
void OpenMesh::IO::_PLYReader_::readInteger ( _PLYReader_::ValueType  _type,
std::istream &  _in,
T &  _value,
OpenMesh::GenProg::TrueType   
) const
inlineprivate

Definition at line 229 of file PLYReader.hh.

◆ readInteger() [3/3]

template<typename T >
void OpenMesh::IO::_PLYReader_::readInteger ( ValueType  _type,
std::istream &  _in,
T &  _value 
) const
private

Definition at line 1092 of file PLYReader.cc.

◆ readValue() [1/8]

void OpenMesh::IO::_PLYReader_::readValue ( ValueType  _type,
std::istream &  _in,
double &  _value 
) const
private

Definition at line 938 of file PLYReader.cc.

◆ readValue() [2/8]

void OpenMesh::IO::_PLYReader_::readValue ( ValueType  _type,
std::istream &  _in,
float &  _value 
) const
private

Definition at line 912 of file PLYReader.cc.

◆ readValue() [3/8]

void OpenMesh::IO::_PLYReader_::readValue ( ValueType  _type,
std::istream &  _in,
int &  _value 
) const
private

Definition at line 1044 of file PLYReader.cc.

◆ readValue() [4/8]

void OpenMesh::IO::_PLYReader_::readValue ( ValueType  _type,
std::istream &  _in,
short &  _value 
) const
private

Definition at line 988 of file PLYReader.cc.

◆ readValue() [5/8]

void OpenMesh::IO::_PLYReader_::readValue ( ValueType  _type,
std::istream &  _in,
signed char &  _value 
) const
private

Definition at line 980 of file PLYReader.cc.

◆ readValue() [6/8]

void OpenMesh::IO::_PLYReader_::readValue ( ValueType  _type,
std::istream &  _in,
unsigned char &  _value 
) const
private

Definition at line 964 of file PLYReader.cc.

◆ readValue() [7/8]

void OpenMesh::IO::_PLYReader_::readValue ( ValueType  _type,
std::istream &  _in,
unsigned int &  _value 
) const
private

Definition at line 996 of file PLYReader.cc.

◆ readValue() [8/8]

void OpenMesh::IO::_PLYReader_::readValue ( ValueType  _type,
std::istream &  _in,
unsigned short &  _value 
) const
private

Definition at line 972 of file PLYReader.cc.

Member Data Documentation

◆ buff

unsigned char OpenMesh::IO::_PLYReader_::buff[8]
mutableprivate

Definition at line 161 of file PLYReader.hh.

◆ elements_

std::vector< ElementInfo > OpenMesh::IO::_PLYReader_::elements_
mutableprivate

Definition at line 212 of file PLYReader.hh.

◆ faceCount_

unsigned int OpenMesh::IO::_PLYReader_::faceCount_
mutableprivate

Definition at line 170 of file PLYReader.hh.

◆ options_

Options OpenMesh::IO::_PLYReader_::options_
mutableprivate

Available per file options for reading.

Definition at line 164 of file PLYReader.hh.

◆ scalar_size_

std::map<ValueType, int> OpenMesh::IO::_PLYReader_::scalar_size_
mutableprivate

Stores sizes of property types.

Definition at line 183 of file PLYReader.hh.

◆ texture_files_

std::vector< std::string > OpenMesh::IO::_PLYReader_::texture_files_
mutableprivate

Definition at line 214 of file PLYReader.hh.

◆ userOptions_

Options OpenMesh::IO::_PLYReader_::userOptions_
mutableprivate

Options that the user wants to read.

Definition at line 167 of file PLYReader.hh.

◆ vertexCount_

unsigned int OpenMesh::IO::_PLYReader_::vertexCount_
mutableprivate

Definition at line 169 of file PLYReader.hh.

◆ vertexDimension_

uint OpenMesh::IO::_PLYReader_::vertexDimension_
mutableprivate

Definition at line 172 of file PLYReader.hh.


The documentation for this class was generated from the following files: