52 #ifndef __PLYWRITER_HH__ 53 #define __PLYWRITER_HH__ 62 #include <OpenMesh/Core/System/config.h> 63 #include <OpenMesh/Core/Utils/SingletonT.hh> 64 #include <OpenMesh/Core/IO/exporter/BaseExporter.hh> 65 #include <OpenMesh/Core/IO/writer/BaseWriter.hh> 66 #include <OpenMesh/Core/Utils/GenProg.hh> 98 std::string
get_description()
const override {
return "PLY polygon file format"; }
101 bool write(
const std::string&,
BaseExporter&,
Options, std::streamsize _precision = 6)
const override;
103 bool write(std::ostream&,
BaseExporter&,
Options, std::streamsize _precision = 6)
const override;
109 ValueTypeFLOAT32, ValueTypeFLOAT,
110 ValueTypeINT32, ValueTypeINT , ValueTypeUINT,
111 ValueTypeUCHAR, ValueTypeCHAR, ValueTypeUINT8,
112 ValueTypeUSHORT, ValueTypeSHORT,
119 struct CustomProperty
123 explicit CustomProperty(
const BaseProperty*
const _p):type(Unsupported),property(_p){}
126 const char* nameOfType_[12];
129 std::vector<CustomProperty> writeCustomTypeHeader(std::ostream& _out, BaseKernel::const_prop_iterator _begin, BaseKernel::const_prop_iterator _end)
const;
130 template<
bool binary>
131 void write_customProp(std::ostream& _our,
const CustomProperty& _prop,
size_t _index)
const;
133 void writeProxy(ValueType _type, std::ostream& _out, T _value, OpenMesh::GenProg::TrueType )
const 135 writeValue(_type, _out, _value);
138 void writeProxy(ValueType _type, std::ostream& _out, T _value, OpenMesh::GenProg::FalseType )
const 140 _out <<
" " << _value;
144 void writeValue(ValueType _type, std::ostream& _out,
signed char value)
const;
145 void writeValue(ValueType _type, std::ostream& _out,
unsigned char value)
const;
146 void writeValue(ValueType _type, std::ostream& _out,
short value)
const;
147 void writeValue(ValueType _type, std::ostream& _out,
unsigned short value)
const;
148 void writeValue(ValueType _type, std::ostream& _out,
int value)
const;
149 void writeValue(ValueType _type, std::ostream& _out,
unsigned int value)
const;
150 void writeValue(ValueType _type, std::ostream& _out,
float value)
const;
151 void writeValue(ValueType _type, std::ostream& _out,
double value)
const;
156 void write_header(std::ostream& _out,
BaseExporter& _be,
Options& _opt, std::vector<CustomProperty>& _ovProps, std::vector<CustomProperty>& _ofProps)
const;
Implementation of the PLY format writer.
Definition: PLYWriter.hh:89
Abstract class defining the basic interface of a dynamic property.
Definition: BaseProperty.hh:60
std::string get_extensions() const override
Return file format's extension.
Definition: PLYWriter.hh:99
std::string get_description() const override
Return short description of the supported file format.
Definition: PLYWriter.hh:98
virtual ~_PLYWriter_()
Destructor.
Definition: PLYWriter.hh:96
size_t binary_size(const Mesh &_mesh, const std::string &_ext, Options _opt=Options::Default)
Get binary size of data.
Definition: MeshIO.hh:268
_PLYWriter_ __PLYWriterInstance
Declare the single entity of the PLY writer.
Definition: PLYWriter.cc:67
Base class for exporter modules.
Definition: BaseExporter.hh:84
Set options for reader/writer modules.
Definition: Options.hh:90
Base class for all writer modules.
Definition: BaseWriter.hh:83
Contains all the mesh ingredients like the polygonal mesh, the triangle mesh, different mesh kernels ...
Definition: MeshItems.hh:59