diff --git a/Mesh/meshGRegionExtruded.cpp b/Mesh/meshGRegionExtruded.cpp index ac0c1a99c0330ab606c1a2369fbffc66b6168f3b..8ce236855d93741e9005bc3ee6c21c0fa683b03b 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];