From 2efa9accaa23c703f09432d920349539e9c534a6 Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Sat, 17 Sep 2016 05:57:19 +0000 Subject: [PATCH] fix --- Mesh/meshDiscreteRegion.cpp | 64 ++++++++++++++++++++----------------- 1 file changed, 35 insertions(+), 29 deletions(-) diff --git a/Mesh/meshDiscreteRegion.cpp b/Mesh/meshDiscreteRegion.cpp index 4f73b4a976..f0522a8e42 100644 --- a/Mesh/meshDiscreteRegion.cpp +++ b/Mesh/meshDiscreteRegion.cpp @@ -1,3 +1,8 @@ +// Gmsh - Copyright (C) 1997-2016 C. Geuzaine, J.-F. Remacle +// +// See the LICENSE.txt file for license information. Please report all +// bugs and problems to the public mailing list <gmsh@onelab.info>. + #include <stdlib.h> #include <vector> // general @@ -27,55 +32,58 @@ #include "MPrism.h" #include "MHexahedron.h" -// triangles are defining the boundary +// triangles are defining the boundary // internal points are allowed // This has been done for HEXTREME -GRegion * createDiscreteRegionFromRawData ( GModel *gm, fullMatrix<double> & pts, fullMatrix<int> &triangles) { +GRegion * createDiscreteRegionFromRawData(GModel *gm, fullMatrix<double> &pts, + fullMatrix<int> &triangles) +{ GRegion *gr = new discreteRegion(gm, NEWREG()); - GFace *gf = new discreteFace (gm, NEWREG()); - gm->add (gr); - gm->add (gf); - std::list<GFace*> faces ; faces.push_back(gf) ; gr->set (faces); + GFace *gf = new discreteFace(gm, NEWREG()); + gm->add(gr); + gm->add(gf); + std::list<GFace*> faces; faces.push_back(gf); gr->set(faces); // get boundary nodes std::set<int> bnd; - int nbTriangles = triangles.size1(); - int nbPts = pts.size1(); - for (unsigned int i=0 ; i<nbTriangles ; i++) { - bnd.insert(triangles(i,0)); - bnd.insert(triangles(i,1)); - bnd.insert(triangles(i,2)); + unsigned int nbTriangles = triangles.size1(); + unsigned int nbPts = pts.size1(); + for (unsigned int i = 0; i < nbTriangles; i++) { + bnd.insert(triangles(i, 0)); + bnd.insert(triangles(i, 1)); + bnd.insert(triangles(i, 2)); } // create points - std::vector<MVertex*> vs (nbPts); - for (unsigned int i=0 ; i<nbPts ; i++) { + std::vector<MVertex*> vs(nbPts); + for (unsigned int i = 0; i < nbPts; i++) { if (bnd.find(i) == bnd.end()){ - MVertex *v = new MVertex (pts(i,0), pts(i,1), pts(i,2), gr); + MVertex *v = new MVertex(pts(i,0), pts(i,1), pts(i,2), gr); gr->mesh_vertices.push_back(v); vs[i] = v; } else { - MVertex *v = new MFaceVertex (pts(i,0), pts(i,1), pts(i,2), gr, 0, 0); + MVertex *v = new MFaceVertex(pts(i,0), pts(i,1), pts(i,2), gr, 0, 0); gr->mesh_vertices.push_back(v); vs[i] = v; } } // create triangles - for (unsigned int i=0 ; i<nbTriangles ; i++) { - int i0= triangles(i,0); - int i1= triangles(i,1); - int i2= triangles(i,2); - MTriangle *t = new MTriangle(vs[i0],vs[i1],vs[i2]); + for (unsigned int i = 0 ; i < nbTriangles; i++) { + int i0 = triangles(i,0); + int i1 = triangles(i,1); + int i2 = triangles(i,2); + MTriangle *t = new MTriangle(vs[i0], vs[i1], vs[i2]); gf->triangles.push_back(t); } - + delaunayTriangulation(1, 1, vs, gr->tetrahedra); - + return gr; } -GRegion * createTetrahedralMesh ( GModel *gm, fullMatrix<double> & pts, fullMatrix<int> &triangles ) { - - GRegion *gr = createDiscreteRegionFromRawData ( gm, pts, triangles ); +GRegion *createTetrahedralMesh(GModel *gm, fullMatrix<double> &pts, + fullMatrix<int> &triangles) +{ + GRegion *gr = createDiscreteRegionFromRawData(gm, pts, triangles); try{ meshGRegionBoundaryRecovery(gr); } @@ -87,7 +95,5 @@ GRegion * createTetrahedralMesh ( GModel *gm, fullMatrix<double> & pts, fullMatr Msg::Error("Could not recover boundary: error %d", err); } } - - + return gr; } - -- GitLab