From 018689849b51e1e61f6387ea8b8caad8b5400cd6 Mon Sep 17 00:00:00 2001
From: Norihiro Watanabe <norihiro.watanabe@ufz.de>
Date: Fri, 9 Jan 2015 16:15:19 +0100
Subject: [PATCH] add writeMeshToFile

---
 FileIO/CMakeLists.txt      |  2 ++
 FileIO/writeMeshToFile.cpp | 41 ++++++++++++++++++++++++++++++++++++++
 FileIO/writeMeshToFile.h   | 24 ++++++++++++++++++++++
 3 files changed, 67 insertions(+)
 create mode 100644 FileIO/writeMeshToFile.cpp
 create mode 100644 FileIO/writeMeshToFile.h

diff --git a/FileIO/CMakeLists.txt b/FileIO/CMakeLists.txt
index 6c9d6c4b985..0f4f665edb5 100644
--- a/FileIO/CMakeLists.txt
+++ b/FileIO/CMakeLists.txt
@@ -19,6 +19,8 @@ SET( SOURCES
 	TINInterface.cpp
 	Writer.h
 	Writer.cpp
+	writeMeshToFile.h
+	writeMeshToFile.cpp
 )
 
 GET_SOURCE_FILES(SOURCES_LEGACY Legacy)
diff --git a/FileIO/writeMeshToFile.cpp b/FileIO/writeMeshToFile.cpp
new file mode 100644
index 00000000000..d519d1e1e96
--- /dev/null
+++ b/FileIO/writeMeshToFile.cpp
@@ -0,0 +1,41 @@
+/**
+ * \copyright
+ * Copyright (c) 2012-2014, OpenGeoSys Community (http://www.opengeosys.org)
+ *            Distributed under a Modified BSD License.
+ *              See accompanying file LICENSE.txt or
+ *              http://www.opengeosys.org/project/license
+ */
+
+#include "writeMeshToFile.h"
+
+// ThirdParty/logog
+#include "logog/include/logog.hpp"
+
+// BaseLib
+#include "FileTools.h"
+#include "StringTools.h"
+
+// MeshLib
+#include "Mesh.h"
+
+// FileIO
+#include "Legacy/MeshIO.h"
+#include "FileIO/VtkIO/VtuInterface.h"
+
+namespace FileIO
+{
+void writeMeshToFile(const MeshLib::Mesh &mesh, const std::string &file_name)
+{
+	if (BaseLib::hasFileExtension("msh", file_name))
+	{
+		Legacy::MeshIO meshIO;
+		meshIO.writeToFile(file_name);
+	} else if (BaseLib::hasFileExtension("vtu", file_name)) {
+		FileIO::VtuInterface writer(&mesh);
+		writer.writeToFile(file_name);
+	} else {
+		ERR("writeMeshToFile(): Unknown mesh file format in file %s.", file_name.c_str());
+	}
+}
+
+} // end namespace FileIO
diff --git a/FileIO/writeMeshToFile.h b/FileIO/writeMeshToFile.h
new file mode 100644
index 00000000000..bab68d434dd
--- /dev/null
+++ b/FileIO/writeMeshToFile.h
@@ -0,0 +1,24 @@
+/**
+ * \copyright
+ * Copyright (c) 2012-2014, OpenGeoSys Community (http://www.opengeosys.org)
+ *            Distributed under a Modified BSD License.
+ *              See accompanying file LICENSE.txt or
+ *              http://www.opengeosys.org/project/license
+ */
+
+#ifndef WRITEMESHTOFILE_H_
+#define WRITEMESHTOFILE_H_
+
+#include <string>
+
+namespace MeshLib
+{
+class Mesh;
+}
+
+namespace FileIO
+{
+void writeMeshToFile(const MeshLib::Mesh &mesh, const std::string &file_name);
+}
+
+#endif // WRITEMESHTOFILE_H_
-- 
GitLab