From 1d303436120b761cd4ebaf2ceefa094ead2a30bb Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Sat, 26 Oct 2013 05:55:27 +0000 Subject: [PATCH] pp --- Mesh/meshGFaceDelaunayInsertion.cpp | 30 +++++++++++----------- Mesh/meshGFaceOptimize.cpp | 39 ++++++++++++++++------------- 2 files changed, 37 insertions(+), 32 deletions(-) diff --git a/Mesh/meshGFaceDelaunayInsertion.cpp b/Mesh/meshGFaceDelaunayInsertion.cpp index 07a4d050c1..e22a13eb84 100644 --- a/Mesh/meshGFaceDelaunayInsertion.cpp +++ b/Mesh/meshGFaceDelaunayInsertion.cpp @@ -228,7 +228,7 @@ void buildMetric(GFace *gf, double *uv, double *metric) metric[0] = dot(der.first(), der.first()); metric[1] = dot(der.second(), der.first()); metric[2] = dot(der.second(), der.second()); - + } // m 3x3 @@ -474,16 +474,16 @@ int inCircumCircleTangentPlane(MTriangle *t, SVector3 pmx2 (v2->x()-p.x(),v2->y()-p.y(),v2->z()-p.z()); p2[0] = dot(pmx2,t1);p2[1] = dot(pmx2,t2); SVector3 pmx3 (v3->x()-p.x(),v3->y()-p.y(),v3->z()-p.z()); - p3[0] = dot(pmx3,t1);p3[1] = dot(pmx3,t2); + p3[0] = dot(pmx3,t1);p3[1] = dot(pmx3,t2); double result = robustPredicates::incircle(p1, p2, p3, pp) * robustPredicates::orient2d(p1, p2, p3); return (result > 0) ? 1 : 0; } -void recurFindCavityTangentPlane(std::list<edgeXface> &shell, +void recurFindCavityTangentPlane(std::list<edgeXface> &shell, std::list<MTri3*> &cavity, - MTri3 *t, + MTri3 *t, SPoint3 &p, SVector3 &t1, SVector3 &t2) { t->setDeleted(true); @@ -520,13 +520,13 @@ static void computeTangentPlane (GFace *gf, double center[2], SPoint3 &p, SVecto } bool findCavityTangentPlane(GFace *gf, double *center, - std::list<edgeXface> &shell, + std::list<edgeXface> &shell, std::list<MTri3*> &cavity, MTri3 *t) { return false; SPoint3 p; SVector3 t1,t2; - computeTangentPlane (gf,center, p,t1,t2); + computeTangentPlane (gf,center, p,t1,t2); SVector3 N = crossprod(t2,t1); N.normalize(); const double d = -(N.x()*p.x()+N.y()*p.y()+N.z()*p.z()); @@ -535,8 +535,8 @@ bool findCavityTangentPlane(GFace *gf, double *center, double DMAX = 0.0; for (std::list<MTri3*>::iterator i=cavity.begin();i!=cavity.end();i++){ t = *i; - SPoint3 b = t->tri()->getFace(0).barycenter(); - // SVector3 n = t->tri()->getFace(0).normal(); + SPoint3 b = t->tri()->getFace(0).barycenter(); + // SVector3 n = t->tri()->getFace(0).normal(); // double a = fabs(dot(N,n)); double dist = fabs(N.x()*b.x()+N.y()*b.y()+N.z()*b.z() + d); DMAX = std::max(DMAX,dist); @@ -544,7 +544,7 @@ bool findCavityTangentPlane(GFace *gf, double *center, // printf("%g %g %g -- %g %g %g\n",N.x(),N.y(),N.z(),n.x(),n.y(),n.z()); } if (DMAX > 30 || cavity.size() < 2){ - printf("%d elements in the cavity DMAX %g\n",cavity.size(),DMAX); + //printf("%d elements in the cavity DMAX %g\n",cavity.size(),DMAX); for (std::list<MTri3*>::iterator i=cavity.begin();i!=cavity.end();i++){ t = *i; t->setDeleted(false); @@ -875,14 +875,14 @@ static MTri3* search4Triangle (MTri3 *t, double pt[2], bidimMeshData & data, ///********************* -static bool insertAPoint(GFace *gf, +static bool insertAPoint(GFace *gf, std::set<MTri3*,compareTri3Ptr>::iterator it, - double center[2], - double metric[3], + double center[2], + double metric[3], bidimMeshData & data, std::set<MTri3*,compareTri3Ptr> &AllTris, std::set<MTri3*,compareTri3Ptr> *ActiveTris = 0, - MTri3 *worst = 0, + MTri3 *worst = 0, MTri3 **oneNewTriangle = 0) { if (worst){ @@ -911,7 +911,7 @@ static bool insertAPoint(GFace *gf, } } } - else { + else { ptin = search4Triangle (worst, center, data, AllTris,uv, oneNewTriangle ? true : false); // printf("what's this %g %g\n",center[0],center[1]); @@ -992,7 +992,7 @@ void bowyerWatson(GFace *gf, int MAXPNT, Msg::Error("No triangles in initial mesh"); return; } - + int ITER = 0; int NBDELETED = 0; // double DT1 = 0 , DT2=0, DT3=0; diff --git a/Mesh/meshGFaceOptimize.cpp b/Mesh/meshGFaceOptimize.cpp index af5ffbdc2f..5be70a8490 100644 --- a/Mesh/meshGFaceOptimize.cpp +++ b/Mesh/meshGFaceOptimize.cpp @@ -194,7 +194,8 @@ void buildMeshGenerationDataStructures(GFace *gf, connectTriangles(AllTris); } -void computeEquivalences(GFace *gf, bidimMeshData & data){ +void computeEquivalences(GFace *gf, bidimMeshData & data) +{ if (data.equivalence){ std::vector<MTriangle*> newT; for (unsigned int i=0;i<gf->triangles.size();i++){ @@ -207,7 +208,8 @@ void computeEquivalences(GFace *gf, bidimMeshData & data){ v[j] = it->second; } } - if (v[0] != v[1] && v[0] != v[2] && v[2] != v[1])newT.push_back(new MTriangle (v[0],v[1],v[2])); + if (v[0] != v[1] && v[0] != v[2] && v[2] != v[1]) + newT.push_back(new MTriangle (v[0],v[1],v[2])); delete t; } gf->triangles = newT; @@ -237,12 +239,13 @@ struct equivalentTriangle { }; bool computeEquivalentTriangles (GFace *gf, - std::map<MVertex* , MVertex*>* equivalence) { + std::map<MVertex* , MVertex*>* equivalence) +{ if (!equivalence)return false; std::vector<MTriangle*> WTF; if (!equivalence)return false; - std::set<equivalentTriangle> eqTs; - for (int i=0;i<gf->triangles.size();i++){ + std::set<equivalentTriangle> eqTs; + for (unsigned int i = 0; i < gf->triangles.size(); i++){ equivalentTriangle et (gf->triangles[i],equivalence); std::set<equivalentTriangle>::iterator iteq = eqTs.find(et); if (iteq == eqTs.end())eqTs.insert(et); @@ -251,10 +254,10 @@ bool computeEquivalentTriangles (GFace *gf, WTF.push_back(gf->triangles[i]); } } - + if (WTF.size()){ - printf("%d triangles are equivament\n",WTF.size()); - for (int i=0;i<WTF.size();i++){ + Msg::Info("%d triangles are equivalent", WTF.size()); + for (unsigned int i=0;i<WTF.size();i++){ } return true; } @@ -262,12 +265,14 @@ bool computeEquivalentTriangles (GFace *gf, } -int splitEquivalentTriangles(GFace *gf, bidimMeshData & data){ - computeEquivalentTriangles (gf,data.equivalence); +void splitEquivalentTriangles(GFace *gf, bidimMeshData & data) +{ + computeEquivalentTriangles (gf,data.equivalence); } -void transferDataStructure(GFace *gf, std::set<MTri3*, compareTri3Ptr> &AllTris,bidimMeshData & data) +void transferDataStructure(GFace *gf, std::set<MTri3*, compareTri3Ptr> &AllTris, + bidimMeshData & data) { while (1) { if(AllTris.begin() == AllTris.end()) break; @@ -434,7 +439,7 @@ int _removeThreeTrianglesNodes(GFace *gf) break; } for(int j = 0; j < 3; j++) { - if(lt[i]->getVertex(j) == it->first) { + if(lt[i]->getVertex(j) == it->first) { vs.insert(lt[i]->getVertex((j+1)%3)); vs.insert(lt[i]->getVertex((j+2)%3)); break; @@ -2268,11 +2273,11 @@ void _relocateVertex(GFace *gf, MVertex *ver, MEdge e = lt[i]->getEdge(j); SPoint2 param0, param1; if (e.getVertex(0) == ver){ - reparamMeshEdgeOnFace(e.getVertex(0), e.getVertex(1), gf, param0, param1); + reparamMeshEdgeOnFace(e.getVertex(0), e.getVertex(1), gf, param0, param1); pts[e.getVertex(1)] = param1; } else if (e.getVertex(1) == ver){ - reparamMeshEdgeOnFace(e.getVertex(0), e.getVertex(1), gf, param0, param1); + reparamMeshEdgeOnFace(e.getVertex(0), e.getVertex(1), gf, param0, param1); pts[e.getVertex(0)] = param0; } } @@ -2809,7 +2814,7 @@ bool edgeSwap(std::set<swapquad> &configs, MTri3 *t1, GFace *gf, int iLocalEdge, swapquad sq (v1, v2, v3, v4); if(configs.find(sq) != configs.end()) return false; configs.insert(sq); - + if (edgeSwapDelProj(v3,v4,v2,v1))return false; // const double volumeRef = surfaceTriangleUV(v1, v2, v3, data) + @@ -2838,7 +2843,7 @@ bool edgeSwap(std::set<swapquad> &configs, MTri3 *t1, GFace *gf, int iLocalEdge, const double triQuality = std::min(qmTriangle(t1b, QMTRI_RHO), qmTriangle(t2b, QMTRI_RHO)); if (!edgeSwapDelProj(v1,v2,v3,v4)){ - if(triQuality < triQualityRef){ + if(triQuality < triQualityRef){ delete t1b; delete t2b; return false; @@ -3032,7 +3037,7 @@ bool buildVertexCavity(MTri3 *t, int iLocalVertex, MVertex **v1, } } -// split one triangle into 3 triangles +// split one triangle into 3 triangles void _triangleSplit (GFace *gf, MElement *t) { MVertex *v1 = t->getVertex(0); -- GitLab