X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHDS%2FSMESHDS_Document.cxx;h=ff16aa2b097d703a8930342a9d4167d260e3e499;hb=20c126bc220757c06b5576f71ed6f34ae85e3e40;hp=315275e33ac9f742e6ddc35552229d47e1285a31;hpb=1b57300c826e4cb17d9a40124991a14eabb9eee8;p=modules%2Fsmesh.git diff --git a/src/SMESHDS/SMESHDS_Document.cxx b/src/SMESHDS/SMESHDS_Document.cxx index 315275e33..ff16aa2b0 100644 --- a/src/SMESHDS/SMESHDS_Document.cxx +++ b/src/SMESHDS/SMESHDS_Document.cxx @@ -55,13 +55,15 @@ SMESHDS_Document::~SMESHDS_Document() //function : NewMesh //purpose : //======================================================================= -int SMESHDS_Document::NewMesh(bool theIsEmbeddedMode) -{ - static int aNewMeshID = 0; - aNewMeshID++; - SMESHDS_Mesh *aNewMesh = new SMESHDS_Mesh(aNewMeshID,theIsEmbeddedMode); - myMeshes[aNewMeshID] = aNewMesh; - return aNewMeshID; +SMESHDS_Mesh * SMESHDS_Document::NewMesh(bool theIsEmbeddedMode, int MeshID) +{ + std::map::iterator i_m = + myMeshes.insert( make_pair( MeshID, (SMESHDS_Mesh*)0 )).first; + if ( i_m->second ) + throw SALOME_Exception("SMESHDS_Document::NewMesh(): ID of existing mesh given"); + SMESHDS_Mesh *aNewMesh = new SMESHDS_Mesh(MeshID,theIsEmbeddedMode); + i_m->second = aNewMesh; + return aNewMesh; } //=======================================================================