From b3afd0f3610f6854be2996dabf34e5e91997d8ba Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Tue, 4 Apr 2017 00:23:34 +0200 Subject: [PATCH] enable mesh extrusion of surface with seam --- Mesh/meshGRegionExtruded.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Mesh/meshGRegionExtruded.cpp b/Mesh/meshGRegionExtruded.cpp index ac0c1a99c0..8ce236855d 100644 --- a/Mesh/meshGRegionExtruded.cpp +++ b/Mesh/meshGRegionExtruded.cpp @@ -143,6 +143,23 @@ static void extrudeMesh(GFace *from, GRegion *to, MVertexRTree &pos) std::vector<MVertex*> embedded = from->getEmbeddedMeshVertices(); mesh_vertices.insert(mesh_vertices.end(), embedded.begin(), embedded.end()); + // add all vertices on surface seams + std::set<MVertex*> seam; + std::list<GEdge*> l_edges = from->edges(); + for (std::list<GEdge*>::const_iterator it = l_edges.begin(); + it != l_edges.end(); ++it){ + if ((*it)->isSeam(from)){ + seam.insert((*it)->mesh_vertices.begin(), (*it)->mesh_vertices.end()); + if((*it)->getBeginVertex()) + seam.insert((*it)->getBeginVertex()->mesh_vertices.begin(), + (*it)->getBeginVertex()->mesh_vertices.end()); + if((*it)->getEndVertex()) + seam.insert((*it)->getEndVertex()->mesh_vertices.begin(), + (*it)->getEndVertex()->mesh_vertices.end()); + } + } + mesh_vertices.insert(mesh_vertices.end(), seam.begin(), seam.end()); + // create extruded vertices for(unsigned int i = 0; i < mesh_vertices.size(); i++){ MVertex *v = mesh_vertices[i]; -- GitLab