diff --git a/Geo/GFaceCompound.cpp b/Geo/GFaceCompound.cpp index 39639edb15146f257a1ed512440a48e7e3c87c0f..0df3769d1ecd9db2b1b8247ee243bce896617471 100644 --- a/Geo/GFaceCompound.cpp +++ b/Geo/GFaceCompound.cpp @@ -1279,6 +1279,10 @@ GFaceCompound::~GFaceCompound() _deleteInternals(); } +void GFaceCompound::deleteInternals(){ + _deleteInternals(); +} + void GFaceCompound::_deleteInternals() { for (unsigned int i = 0; i < myParamVert.size(); i++) diff --git a/Geo/GFaceCompound.h b/Geo/GFaceCompound.h index 6e1b0e22f3c85ef94a5b72e43d571d2a10d10a66..e086c40a659b5e06f24929b1a5740f357e7d6d56 100644 --- a/Geo/GFaceCompound.h +++ b/Geo/GFaceCompound.h @@ -178,6 +178,8 @@ class GFaceCompound : public GFace { GPoint intersectionWithCircle (const SVector3 &n1, const SVector3 &n2, const SVector3 &p, const double &d, double uv[2]) const; + void deleteInternals(); + private: void _deleteInternals(); mutable typeOfCompound _toc; diff --git a/Mesh/directions3D.cpp b/Mesh/directions3D.cpp index bba0a7b1719a9c862c43c2be78b60112357119ae..1c355b1d7c3462f2a99739b7b42c2f45f01bbb00 100644 --- a/Mesh/directions3D.cpp +++ b/Mesh/directions3D.cpp @@ -13,6 +13,7 @@ #include "MTetrahedron.h" #include "directions3D.h" #include "OS.h" +#include "GFaceCompound.h" #if defined(HAVE_PETSC) #include "dofManager.h" @@ -79,6 +80,10 @@ void Frame_field::init_face(GFace* gf){ MElementOctree* octree; STensor3 m(1.0); + if(gf->geomType()==GEntity::CompoundSurface){ + ((GFaceCompound*)gf)->deleteInternals(); + ((GFaceCompound*)gf)->parametrize(); + } backgroundMesh::set(gf); octree = backgroundMesh::current()->get_octree();