Skip to content
Snippets Groups Projects
Commit 9c2962c6 authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

pp

parent 9b429721
No related branches found
No related tags found
No related merge requests found
...@@ -688,7 +688,8 @@ MTriangle* setHighOrder(MTriangle *t, GFace *gf, ...@@ -688,7 +688,8 @@ MTriangle* setHighOrder(MTriangle *t, GFace *gf,
} }
} }
} }
MQuadrangle *setHighOrder(MQuadrangle *q, GFace *gf,
static MQuadrangle *setHighOrder(MQuadrangle *q, GFace *gf,
edgeContainer &edgeVertices, edgeContainer &edgeVertices,
faceContainer &faceVertices, faceContainer &faceVertices,
bool linear, bool incomplete, int nPts, bool linear, bool incomplete, int nPts,
...@@ -699,23 +700,32 @@ MQuadrangle *setHighOrder(MQuadrangle *q, GFace *gf, ...@@ -699,23 +700,32 @@ MQuadrangle *setHighOrder(MQuadrangle *q, GFace *gf,
getEdgeVertices(gf, q, ve, edgeVertices, linear, nPts, displ2D, displ3D); getEdgeVertices(gf, q, ve, edgeVertices, linear, nPts, displ2D, displ3D);
if(incomplete){ if(incomplete){
if(nPts == 1){ if(nPts == 1){
return new MQuadrangle8(q->getVertex(0), q->getVertex(1), q->getVertex(2),q->getVertex(3), ve[0],ve[1],ve[2],ve[3]); return new MQuadrangle8(q->getVertex(0), q->getVertex(1), q->getVertex(2),
}else{ q->getVertex(3), ve[0], ve[1], ve[2], ve[3]);
return new MQuadrangleN(q->getVertex(0), q->getVertex(1), q->getVertex(2), q->getVertex(3), ve, nPts + 1);
} }
} else { else{
return new MQuadrangleN(q->getVertex(0), q->getVertex(1), q->getVertex(2),
q->getVertex(3), ve, nPts + 1);
}
}
else {
if (displ2D && gf->geomType() == GEntity::Plane){ if (displ2D && gf->geomType() == GEntity::Plane){
MQuadrangle incpl(q->getVertex(0), q->getVertex(1), q->getVertex(2), q->getVertex(3)); MQuadrangle incpl(q->getVertex(0), q->getVertex(1), q->getVertex(2),
q->getVertex(3));
getFaceVertices(gf, &incpl, q, vf, faceVertices, linear, nPts, displ2D, displ3D); getFaceVertices(gf, &incpl, q, vf, faceVertices, linear, nPts, displ2D, displ3D);
}else{ }else{
MQuadrangleN incpl(q->getVertex(0), q->getVertex(1), q->getVertex(2), q->getVertex(3), ve, nPts + 1); MQuadrangleN incpl(q->getVertex(0), q->getVertex(1), q->getVertex(2),
q->getVertex(3), ve, nPts + 1);
getFaceVertices(gf, &incpl, q, vf, faceVertices, linear, nPts, displ2D, displ3D); getFaceVertices(gf, &incpl, q, vf, faceVertices, linear, nPts, displ2D, displ3D);
} }
ve.insert(ve.end(), vf.begin(), vf.end()); ve.insert(ve.end(), vf.begin(), vf.end());
if(nPts == 1){ if(nPts == 1){
return new MQuadrangle9(q->getVertex(0), q->getVertex(1), q->getVertex(2),q->getVertex(3), ve[0], ve[1], ve[2], ve[3], vf[0]); return new MQuadrangle9(q->getVertex(0), q->getVertex(1), q->getVertex(2),
}else{ q->getVertex(3), ve[0], ve[1], ve[2], ve[3], vf[0]);
return new MQuadrangleN(q->getVertex(0), q->getVertex(1), q->getVertex(2), q->getVertex(3), ve, nPts + 1); }
else{
return new MQuadrangleN(q->getVertex(0), q->getVertex(1), q->getVertex(2),
q->getVertex(3), ve, nPts + 1);
} }
} }
} }
......
...@@ -23,16 +23,13 @@ class highOrderSmoother; ...@@ -23,16 +23,13 @@ class highOrderSmoother;
void SetOrder1(GModel *m); void SetOrder1(GModel *m);
void SetOrderN(GModel *m, int order, bool linear=true, bool incomplete=false); void SetOrderN(GModel *m, int order, bool linear=true, bool incomplete=false);
MTriangle* setHighOrder(MTriangle *t, GFace *gf,
MTriangle* setHighOrder(MTriangle *t,
GFace *gf,
edgeContainer &edgeVertices, edgeContainer &edgeVertices,
faceContainer &faceVertices, faceContainer &faceVertices,
bool linear, bool linear, bool incomplete, int nPts = 1,
bool incomplete,
int nPts = 1,
highOrderSmoother *displ2D = 0, highOrderSmoother *displ2D = 0,
highOrderSmoother *displ3D = 0); highOrderSmoother *displ3D = 0);
void checkHighOrderTriangles(const char* cc, GModel *m, void checkHighOrderTriangles(const char* cc, GModel *m,
std::vector<MElement*> &bad, double &minJGlob); std::vector<MElement*> &bad, double &minJGlob);
#endif #endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment