From d801efed765bd57f3af5e7747047b827f3c5290e Mon Sep 17 00:00:00 2001
From: rinkk <karsten.rink@ufz.de>
Date: Thu, 20 Oct 2016 12:10:36 +0200
Subject: [PATCH] used generalised method for writing files

---
 Applications/Utils/MeshEdit/moveMeshNodes.cpp | 9 +++++----
 MeshLib/IO/writeMeshToFile.cpp                | 9 ++++++---
 MeshLib/IO/writeMeshToFile.h                  | 2 +-
 3 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/Applications/Utils/MeshEdit/moveMeshNodes.cpp b/Applications/Utils/MeshEdit/moveMeshNodes.cpp
index 6325ebc86e6..5c8224b2693 100644
--- a/Applications/Utils/MeshEdit/moveMeshNodes.cpp
+++ b/Applications/Utils/MeshEdit/moveMeshNodes.cpp
@@ -18,7 +18,6 @@
 
 #include "GeoLib/AABB.h"
 
-#include "MeshLib/IO/VtkIO/VtuInterface.h"
 #include "MeshLib/IO/readMeshFromFile.h"
 #include "MeshLib/IO/writeMeshToFile.h"
 #include "MeshLib/Mesh.h"
@@ -75,7 +74,6 @@ int main (int argc, char* argv[])
         INFO("Usage: %s <msh-file.msh> <keyword> [<value1>] [<value2>]",
              argv[0]);
         INFO("Available keywords:");
-        //for (std::size_t i=0; i<keywords.size(); i++)
         INFO(
             "\t-ALL <value1> <value2> : changes the elevation of all mesh "
             "nodes by <value2> in direction <value1> [x,y,z].");
@@ -209,7 +207,10 @@ int main (int argc, char* argv[])
     }
     /**** add other keywords here ****/
 
-    MeshLib::IO::VtuInterface vtu (mesh.get(), 0, false);
-    vtu.writeToFile(msh_name.substr(0, msh_name.length() - 4) + "_new.vtu");
+    std::string const new_mesh_name (msh_name.substr(0, msh_name.length() - 4) + "_new.vtu");
+    if (MeshLib::IO::writeMeshToFile(*mesh, new_mesh_name) != 0)
+        return EXIT_FAILURE;
+
+    INFO ("Result successfully written.")
     return EXIT_SUCCESS;
 }
diff --git a/MeshLib/IO/writeMeshToFile.cpp b/MeshLib/IO/writeMeshToFile.cpp
index df6d557b25d..0f073aa0e4b 100644
--- a/MeshLib/IO/writeMeshToFile.cpp
+++ b/MeshLib/IO/writeMeshToFile.cpp
@@ -22,19 +22,22 @@ namespace MeshLib
 {
 namespace IO
 {
-void writeMeshToFile(const MeshLib::Mesh &mesh, const std::string &file_name)
+int writeMeshToFile(const MeshLib::Mesh &mesh, const std::string &file_name)
 {
     if (BaseLib::hasFileExtension("msh", file_name))
     {
         MeshLib::IO::Legacy::MeshIO meshIO;
         meshIO.setMesh(&mesh);
         meshIO.writeToFile(file_name);
+        return 0;
     } else if (BaseLib::hasFileExtension("vtu", file_name)) {
         MeshLib::IO::VtuInterface writer(&mesh);
         writer.writeToFile(file_name);
-    } else {
-        ERR("writeMeshToFile(): Unknown mesh file format in file %s.", file_name.c_str());
+        return 0;
     }
+
+    ERR("writeMeshToFile(): Unknown mesh file format in file %s.", file_name.c_str());
+    return -1;
 }
 
 } // end namespace IO
diff --git a/MeshLib/IO/writeMeshToFile.h b/MeshLib/IO/writeMeshToFile.h
index ae58ed033c3..6bd0b8476dc 100644
--- a/MeshLib/IO/writeMeshToFile.h
+++ b/MeshLib/IO/writeMeshToFile.h
@@ -16,7 +16,7 @@ namespace MeshLib
 class Mesh;
 namespace IO
 {
-void writeMeshToFile(const MeshLib::Mesh &mesh, const std::string &file_name);
+int writeMeshToFile(const MeshLib::Mesh &mesh, const std::string &file_name);
 }
 }
 
-- 
GitLab