From 2efed964f053b2779f6f790ec30a5f7e527da487 Mon Sep 17 00:00:00 2001 From: Laurent Van Migroet <l.vanmiegroet@ulg.ac.be> Date: Fri, 4 Jun 2010 10:54:39 +0000 Subject: [PATCH] Added deleteMesh to GModel --- Geo/GModel.cpp | 13 +++++++++++++ Geo/GModel.h | 10 ++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp index 2acb8f07ad..6e50e18961 100644 --- a/Geo/GModel.cpp +++ b/Geo/GModel.cpp @@ -250,6 +250,19 @@ void GModel::destroyMeshCaches() _octree = 0; } +void GModel::deleteMesh() +{ + for(riter it=firstRegion();it!=lastRegion();++it) + (*it)->deleteMesh(); + for(fiter it=firstFace();it!=lastFace();++it) + (*it)->deleteMesh(); + for(eiter it=firstEdge();it!=lastEdge();++it) + (*it)->deleteMesh(); + for(viter it=firstVertex();it!=lastVertex();++it) + (*it)->deleteMesh(); + destroyMeshCaches(); +} + bool GModel::empty() const { return vertices.empty() && edges.empty() && faces.empty() && regions.empty(); diff --git a/Geo/GModel.h b/Geo/GModel.h index 520f4f1bec..83d1bf1d2e 100644 --- a/Geo/GModel.h +++ b/Geo/GModel.h @@ -151,6 +151,8 @@ class GModel // delete all the mesh-related caches (this must be called when the // mesh is changed) void destroyMeshCaches(); + //delete the mesh stored in entities and call destroMeshCaches + void deleteMesh(); // access internal CAD representations GEO_Internals *getGEOInternals(){ return _geo_internals; } @@ -388,10 +390,10 @@ class GModel GEntity *revolve(GEntity *e, std::vector<double> p1, std::vector<double> p2, double angle); GEntity *extrude(GEntity *e, std::vector<double> p1, std::vector<double> p2); - GEntity *addPipe(GEntity *e, std::vector<GEdge *> edges); - void addRuledFaces(std::vector<std::vector<GEdge *> > edges); - GFace *addFace(std::vector<GEdge *> edges, std::vector< std::vector<double > > points); - GFace *addPlanarFace(std::vector<std::vector<GEdge *> > edges); + GEntity *addPipe(GEntity *e, std::vector<GEdge *> edges); + void addRuledFaces (std::vector<std::vector<GEdge *> > edges); + GFace* addFace (std::vector<GEdge *> edges, std::vector< std::vector<double > > points); + GFace* addPlanarFace (std::vector<std::vector<GEdge *> > edges); // create solid geometry primitives using the factory GEntity *addSphere(double cx, double cy, double cz, double radius); -- GitLab