X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMDS%2FSMDS_MeshElementIDFactory.hxx;h=edab00727393fd79a34db94d658553b79c01b657;hb=refs%2Ftags%2FT3_2_0b2;hp=f987eaed2d4c7bb67ec51b69441dbe03f3779425;hpb=c3bf92bd87b770fd81631a3853f7f5bb1ac6a4e8;p=modules%2Fsmesh.git diff --git a/src/SMDS/SMDS_MeshElementIDFactory.hxx b/src/SMDS/SMDS_MeshElementIDFactory.hxx index f987eaed2..edab00727 100644 --- a/src/SMDS/SMDS_MeshElementIDFactory.hxx +++ b/src/SMDS/SMDS_MeshElementIDFactory.hxx @@ -17,7 +17,7 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // // @@ -28,22 +28,35 @@ #define _SMDS_MeshElementIDFactory_HeaderFile #include "SMDS_MeshIDFactory.hxx" +#include "SMDS_ElemIterator.hxx" -#include -using namespace std; +#include class SMDS_MeshElement; +typedef NCollection_DataMap SMDS_IdElementMap; + class SMDS_MeshElementIDFactory:public SMDS_MeshIDFactory { - public: - SMDS_MeshElementIDFactory(); - bool BindID(int ID, SMDS_MeshElement * elem); - SMDS_MeshElement * MeshElement(int ID); - virtual int GetFreeID(); - virtual void ReleaseID(int ID); - private: - map myIDElements; +public: + SMDS_MeshElementIDFactory(); + bool BindID(int ID, SMDS_MeshElement * elem); + SMDS_MeshElement * MeshElement(int ID); + virtual int GetFreeID(); + virtual void ReleaseID(int ID); + int GetMaxID() const; + int GetMinID() const; + SMDS_ElemIteratorPtr elementsIterator() const; +private: + void updateMinMax() const; + void updateMinMax(int id) const + { + if (id > myMax) myMax = id; + if (id < myMin) myMin = id; + } + + SMDS_IdElementMap myIDElements; + mutable int myMin, myMax; };