diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp index 29c1b80723c9afa3eb6a600b97d7e2b1abf3c341..c7bd8591ebc63c2db06cec9b6a5ba9c33d8cc9f7 100644 --- a/Geo/GModel.cpp +++ b/Geo/GModel.cpp @@ -1508,7 +1508,7 @@ void GModel::createTopologyFromRegions(std::vector<discreteRegion*> &discRegions Msg::Debug("Done creating topology from regions"); } -void GModel::createTopologyFromFaces(std::vector<discreteFace*> &discFaces) +void GModel::createTopologyFromFaces(std::vector<discreteFace*> &discFaces, int onlyOneBoundary) { Msg::Debug("Creating topology from faces..."); @@ -1597,6 +1597,11 @@ void GModel::createTopologyFromFaces(std::vector<discreteFace*> &discFaces) std::vector<std::vector<MEdge> > boundaries; int nbBounds = connectedSurfaceBoundaries(myEdges, boundaries); + //EMI RBF fix + if (onlyOneBoundary){ + nbBounds = 1; + } + // create new discrete edges for (int ib = 0; ib < nbBounds; ib++){ int numE = getMaxElementaryNumber(1) + 1; diff --git a/Geo/GModel.h b/Geo/GModel.h index f716e7ad80280be457b3d03cc590c65c0dafbd1b..329834195be4b53f0c86785c8a44a2c41c03c130 100644 --- a/Geo/GModel.h +++ b/Geo/GModel.h @@ -351,7 +351,7 @@ class GModel // create topology from mesh void createTopologyFromMesh(); void createTopologyFromRegions(std::vector<discreteRegion*> &discRegions); - void createTopologyFromFaces(std::vector<discreteFace*> &pFaces); + void createTopologyFromFaces(std::vector<discreteFace*> &pFaces, int onlyOneBoundary=0); void makeDiscreteRegionsSimplyConnected(); void makeDiscreteFacesSimplyConnected();