diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp index 18245e2c76efd08abac2df234fb160654065c783..42625d1f57298d31f8c15a69de83437cc997aa34 100644 --- a/Geo/GModel.cpp +++ b/Geo/GModel.cpp @@ -697,6 +697,14 @@ MElement *GModel::getMeshElementByCoord(SPoint3 &p, int dim) } return _octree->find(p.x(), p.y(), p.z(), dim); } +std::vector<MElement*> GModel::getMeshElementsByCoord(SPoint3 &p, int dim) +{ + if(!_octree){ + Msg::Debug("Rebuilding mesh element octree"); + _octree = new MElementOctree(this); + } + return _octree->findAll(p.x(), p.y(), p.z(), dim); +} MVertex *GModel::getMeshVertexByTag(int n) { diff --git a/Geo/GModel.h b/Geo/GModel.h index e345f19f020a7ca7a44874291c7b751625a02e00..adf35614b3d68833d818e306ba4648a462414e61 100644 --- a/Geo/GModel.h +++ b/Geo/GModel.h @@ -297,6 +297,7 @@ class GModel // access a mesh element by coordinates (using an octree search) MElement *getMeshElementByCoord(SPoint3 &p, int dim = -1); + std::vector<MElement*> getMeshElementsByCoord(SPoint3 &p, int dim = -1); // access a mesh element by tag, using the element cache MElement *getMeshElementByTag(int n);