1 // SMESH SMDS : implementaion of Salome mesh data structure
3 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 // See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
24 // File : SMDS_MeshElementIDFactory.cxx
25 // Author : Jean-Michel BOULCOURT
29 #include "SMDS_MeshElementIDFactory.hxx"
30 #include "SMDS_MeshElement.hxx"
32 //=======================================================================
33 //function : SMDS_MeshElementIDFactory
35 //=======================================================================
36 SMDS_MeshElementIDFactory::SMDS_MeshElementIDFactory():SMDS_MeshIDFactory()
40 //=======================================================================
43 //=======================================================================
44 bool SMDS_MeshElementIDFactory::BindID(int ID, SMDS_MeshElement * elem)
46 bool bound=myIDElements.insert(
47 map<int, SMDS_MeshElement*>::value_type(ID,elem)).second;
48 if(bound) elem->myID=ID;
52 //=======================================================================
53 //function : MeshElement
55 //=======================================================================
56 SMDS_MeshElement* SMDS_MeshElementIDFactory::MeshElement(int ID)
58 map<int, SMDS_MeshElement*>::iterator it=myIDElements.find(ID);
59 if(it==myIDElements.end()) return NULL; else return (*it).second;
63 //=======================================================================
64 //function : GetFreeID
66 //=======================================================================
67 int SMDS_MeshElementIDFactory::GetFreeID()
71 ID = SMDS_MeshIDFactory::GetFreeID();
72 } while (myIDElements.find(ID) != myIDElements.end());
76 //=======================================================================
77 //function : ReleaseID
79 //=======================================================================
80 void SMDS_MeshElementIDFactory::ReleaseID(const int ID)
82 myIDElements.erase(ID);
83 SMDS_MeshIDFactory::ReleaseID(ID);