diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp index 2c7ed6def8a2539baa658c79571f77451e49545b..c3b1f09c1e4c8c39690e6dfe5b28822e1e0d83f5 100644 --- a/Geo/GModel.cpp +++ b/Geo/GModel.cpp @@ -1,4 +1,4 @@ -// $Id: GModel.cpp,v 1.43 2007-08-03 14:57:09 geuzaine Exp $ +// $Id: GModel.cpp,v 1.44 2007-08-06 19:52:00 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -91,6 +91,30 @@ GVertex * GModel::vertexByTag(int n) const return 0; } +void GModel::remove(GRegion *r) +{ + riter it = std::find(firstRegion(), lastRegion(), r); + if(it != regions.end()) regions.erase(it); +} + +void GModel::remove(GFace *f) +{ + fiter it = std::find(firstFace(), lastFace(), f); + if(it != faces.end()) faces.erase(it); +} + +void GModel::remove(GEdge *e) +{ + eiter it = std::find(firstEdge(), lastEdge(), e); + if(it != edges.end()) edges.erase(it); +} + +void GModel::remove(GVertex *v) +{ + viter it = std::find(firstVertex(), lastVertex(), v); + if(it != vertices.end()) vertices.erase(it); +} + template <class T> static void removeInvisible(std::vector<T*> &elements, bool all) { diff --git a/Geo/GModel.h b/Geo/GModel.h index bc5e504c2b52b291c8ac0ccedd9b70c292e97ea6..863e31c46742ed45610fa270b44352fb259a5a44 100644 --- a/Geo/GModel.h +++ b/Geo/GModel.h @@ -95,10 +95,10 @@ class GModel void add(GEdge *e) { edges.insert(e); } void add(GVertex *v) { vertices.insert(v); } - void remove(GRegion *r) { regions.erase(std::find(firstRegion(), lastRegion(), r)); } - void remove(GFace *f) { faces.erase(std::find(firstFace(), lastFace(), f)); } - void remove(GEdge *e) { edges.erase(std::find(firstEdge(), lastEdge(), e)); } - void remove(GVertex *v) { vertices.erase(std::find(firstVertex(), lastVertex(), v)); } + void remove(GRegion *r); + void remove(GFace *f); + void remove(GEdge *e); + void remove(GVertex *v); // loop over all vertices connected to elements and associate geo entity void associateEntityWithVertices();