From 48c2e464cbba827abfff8ce081e0634cdb98cb43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20M=C3=B6bius?= Date: Tue, 1 Jun 2021 12:47:22 +0200 Subject: [PATCH] PLY writer: Added option to choose if we want to write texture coordinates as uv or ply (Thanks to Ossi Saukko for the patch) --- Doc/changelog.docu | 1 + src/OpenMesh/Core/IO/Options.hh | 4 +++- src/OpenMesh/Core/IO/writer/PLYWriter.cc | 9 +++++++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Doc/changelog.docu b/Doc/changelog.docu index 1b5e0bf2..9a9e8ebb 100644 --- a/Doc/changelog.docu +++ b/Doc/changelog.docu @@ -33,6 +33,7 @@
  • OM Writer: Removed debug output
  • OM Writer/Reader: Added support for (re)storing properties of type vector
  • OM Reader: Properties can now be restored from files without the need to create the properties beforehand. Custom types need to be registered for this to work using the OM_REGISTER_PROPERTY_TYPE macro.
  • +
  • PLY writer: Added option to choose if we want to write texture coordinates as uv or ply
  • Tools diff --git a/src/OpenMesh/Core/IO/Options.hh b/src/OpenMesh/Core/IO/Options.hh index 2e642180..347098af 100644 --- a/src/OpenMesh/Core/IO/Options.hh +++ b/src/OpenMesh/Core/IO/Options.hh @@ -111,7 +111,8 @@ public: ColorAlpha = 0x0800, ///< Has (r) / store (w) alpha values for colors ColorFloat = 0x1000, ///< Has (r) / store (w) float values for colors (currently only implemented for PLY and OFF files) Custom = 0x2000, ///< Has (r) custom properties (currently only implemented in PLY Reader ASCII version) - Status = 0x4000 ///< Has (r) / store (w) status properties + Status = 0x4000, ///< Has (r) / store (w) status properties + TexCoordST = 0x8000 ///< Write texture coordinates as ST instead of UV }; public: @@ -212,6 +213,7 @@ public: bool face_has_status() const { return check(Status); } bool color_has_alpha() const { return check(ColorAlpha); } bool color_is_float() const { return check(ColorFloat); } + bool use_st_coordinates() const { return check(TexCoordST); } /// Returns true if _rhs has the same options enabled. diff --git a/src/OpenMesh/Core/IO/writer/PLYWriter.cc b/src/OpenMesh/Core/IO/writer/PLYWriter.cc index 49db3ec6..dc9e864a 100644 --- a/src/OpenMesh/Core/IO/writer/PLYWriter.cc +++ b/src/OpenMesh/Core/IO/writer/PLYWriter.cc @@ -278,8 +278,13 @@ void _PLYWriter_::write_header(std::ostream& _out, BaseExporter& _be, Options& _ } if ( _opt.vertex_has_texcoord() ){ - _out << "property float u" << '\n'; - _out << "property float v" << '\n'; + if ( _opt.use_st_coordinates() ){ + _out << "property float s" << '\n'; + _out << "property float t" << '\n'; + } else { + _out << "property float u" << '\n'; + _out << "property float v" << '\n'; + } } if ( _opt.vertex_has_color() ){