From 28ce8fa08b22fe1528fdbe6b38bb82573483cadb Mon Sep 17 00:00:00 2001
From: Thomas Fischer <thomas.fischer@ufz.de>
Date: Mon, 25 Feb 2019 20:09:18 +0100
Subject: [PATCH] [MeL] Add MaterialIDs from subsurface to sfc mesh.

---
 MeshLib/MeshSurfaceExtraction.cpp | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/MeshLib/MeshSurfaceExtraction.cpp b/MeshLib/MeshSurfaceExtraction.cpp
index e480b4e7373..5feb7b7f686 100644
--- a/MeshLib/MeshSurfaceExtraction.cpp
+++ b/MeshLib/MeshSurfaceExtraction.cpp
@@ -143,7 +143,8 @@ MeshLib::Mesh* MeshSurfaceExtraction::getMeshSurface(
     }
 
     // transmit the original subsurface element ids as a property
-    if (!subsfc_element_id_prop_name.empty()) {
+    if (!subsfc_element_id_prop_name.empty())
+    {
         MeshLib::addPropertyToMesh(*result, subsfc_element_id_prop_name,
                                    MeshLib::MeshItemType::Cell, 1,
                                    element_ids_map);
@@ -156,6 +157,19 @@ MeshLib::Mesh* MeshSurfaceExtraction::getMeshSurface(
                                    face_ids_map);
     }
 
+    auto const* subsurface_material_ids(MeshLib::materialIDs(subsfc_mesh));
+    if (subsurface_material_ids)
+    {
+        std::vector<int> material_ids;
+        material_ids.reserve(sfc_elements.size());
+        for (auto bulk_id : element_ids_map)
+        {
+            material_ids.push_back((*subsurface_material_ids)[bulk_id]);
+        }
+        MeshLib::addPropertyToMesh(*result, "MaterialIDs",
+                                   MeshLib::MeshItemType::Cell, 1,
+                                   material_ids);
+    }
     return result;
 }
 
-- 
GitLab