diff --git a/contrib/HighOrderMeshOptimizer/OptHomRun.cpp b/contrib/HighOrderMeshOptimizer/OptHomRun.cpp index cd62cfd66716300918b6dfce64b1b0d29f59de94..83ff11f5b0dda7560f15bc1ad1103ca423a5c2f2 100644 --- a/contrib/HighOrderMeshOptimizer/OptHomRun.cpp +++ b/contrib/HighOrderMeshOptimizer/OptHomRun.cpp @@ -790,7 +790,7 @@ int HOPatchDefParameters::inPatch(const SPoint3 &badBary, } -void HighOrderMeshOptimizerNew(GModel *gm, OptHomParameters &p) +void HighOrderMeshOptimizerNew(std::vector<GEntity*> &entities, OptHomParameters &p) { Msg::StatusBar(true, "Optimizing high order mesh..."); @@ -849,7 +849,7 @@ void HighOrderMeshOptimizerNew(GModel *gm, OptHomParameters &p) par.pass.push_back(maxCADDistPass); } - meshOptimizer(gm, par); + meshOptimizer(entities, par); p.CPU = par.CPU; p.minJac = minMaxJacBarFunc.getMin(); @@ -857,3 +857,11 @@ void HighOrderMeshOptimizerNew(GModel *gm, OptHomParameters &p) Msg::StatusBar(true, "Done optimizing high order mesh (%g s)", p.CPU); } + + +void HighOrderMeshOptimizerNew(GModel *gm, OptHomParameters &p) +{ + std::vector<GEntity*> entities; + gm->getEntities(entities); + HighOrderMeshOptimizerNew(entities, p); +} diff --git a/contrib/MeshOptimizer/MeshOptimizer.cpp b/contrib/MeshOptimizer/MeshOptimizer.cpp index 5754127c59a321677ff9e3ab17ffdfad10fc1e46..98b118299b12a86de7f43455ffc99544ae35d490 100644 --- a/contrib/MeshOptimizer/MeshOptimizer.cpp +++ b/contrib/MeshOptimizer/MeshOptimizer.cpp @@ -687,7 +687,7 @@ void optimizeOneByOne(const vertElVecMap &vertex2elements, #endif -void meshOptimizer(GModel *gm, MeshOptParameters &par) +void meshOptimizer(std::vector<GEntity*> &entities, MeshOptParameters &par) { #if defined(HAVE_BFGS) if (par.nCurses) @@ -709,9 +709,6 @@ void meshOptimizer(GModel *gm, MeshOptParameters &par) } if (par.verbose > 0) Msg::StatusBar(true, "Optimizing mesh..."); - std::vector<GEntity*> entities; - gm->getEntities(entities); - vertElVecMap vertex2elements; elEntMap element2entity, bndEl2Ent; elElMap el2BndEl; diff --git a/contrib/MeshOptimizer/MeshOptimizer.h b/contrib/MeshOptimizer/MeshOptimizer.h index 76a6690481fb2d5ac3ee7e3cdf4000abaf99d2e8..969efa889e4226e72e090103a85048e910f11787 100644 --- a/contrib/MeshOptimizer/MeshOptimizer.h +++ b/contrib/MeshOptimizer/MeshOptimizer.h @@ -31,11 +31,11 @@ #define _MESHOPTIMIZER_H_ -class GModel; +class GEntity; class MeshOptParameters; -void meshOptimizer(GModel *gm, MeshOptParameters &par); +void meshOptimizer(std::vector<GEntity*> &entities, MeshOptParameters &par); #endif diff --git a/contrib/MeshQualityOptimizer/MeshQualityOptimizer.cpp b/contrib/MeshQualityOptimizer/MeshQualityOptimizer.cpp index 5ea5c00a9256b63521303d79bc0e45419cd6cbcd..54699091c4f56400b06b1124faef164a924fa902 100644 --- a/contrib/MeshQualityOptimizer/MeshQualityOptimizer.cpp +++ b/contrib/MeshQualityOptimizer/MeshQualityOptimizer.cpp @@ -4,6 +4,7 @@ #include "GEntity.h" #include "GFace.h" #include "GRegion.h" +#include "GModel.h" #include "MElement.h" #include "MTriangle.h" #include "MQuadrangle.h" @@ -117,7 +118,7 @@ int QualPatchDefParameters::inPatch(const SPoint3 &badBary, double limDist, } -void MeshQualityOptimizer(GModel *gm, MeshQualOptParameters &p) +void MeshQualityOptimizer(std::vector<GEntity*> &entities, MeshQualOptParameters &p) { Msg::StatusBar(true, "Optimizing mesh quality..."); @@ -160,7 +161,7 @@ void MeshQualityOptimizer(GModel *gm, MeshQualOptParameters &p) par.pass.push_back(minInvCondNumPass); } - meshOptimizer(gm, par); + meshOptimizer(entities, par); p.CPU = par.CPU; if (p.onlyValidity) { @@ -172,3 +173,11 @@ void MeshQualityOptimizer(GModel *gm, MeshQualOptParameters &p) p.maxInvCondNum = minInvCondNumBarFunc.getMax(); } } + + +void MeshQualityOptimizer(GModel *gm, MeshQualOptParameters &p) +{ + std::vector<GEntity*> entities; + gm->getEntities(entities); + MeshQualityOptimizer(entities, p); +}