Back to index

salome-smesh  6.5.0
SMESHDS_Document.cxx
Go to the documentation of this file.
00001 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
00002 //
00003 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
00004 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
00005 //
00006 // This library is free software; you can redistribute it and/or
00007 // modify it under the terms of the GNU Lesser General Public
00008 // License as published by the Free Software Foundation; either
00009 // version 2.1 of the License.
00010 //
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 // Lesser General Public License for more details.
00015 //
00016 // You should have received a copy of the GNU Lesser General Public
00017 // License along with this library; if not, write to the Free Software
00018 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00019 //
00020 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00021 //
00022 
00023 //  SMESH SMESHDS : management of mesh data and SMESH document
00024 //  File   : SMESHDS_Document.cxx
00025 //  Author : Yves FRICAUD, OCC
00026 //  Module : SMESH
00027 //  $Header: 
00028 //
00029 #include "SMESHDS_Document.hxx"
00030 #include "utilities.h"
00031 
00032 using namespace std;
00033 
00034 //=======================================================================
00035 //function : Create
00036 //purpose  : 
00037 //=======================================================================
00038 SMESHDS_Document::SMESHDS_Document(int UserID):myUserID(UserID)
00039 {
00040 }
00041 
00042 //=======================================================================
00043 //function : Destructor
00044 //purpose  : 
00045 //=======================================================================
00046 
00047 SMESHDS_Document::~SMESHDS_Document()
00048 {
00049   InitMeshesIterator();
00050   while ( MoreMesh() )
00051     delete NextMesh();
00052 }
00053 
00054 //=======================================================================
00055 //function : NewMesh
00056 //purpose  : 
00057 //=======================================================================
00058 int SMESHDS_Document::NewMesh(bool theIsEmbeddedMode)
00059 {
00060   static int aNewMeshID = 0;
00061   aNewMeshID++;
00062   SMESHDS_Mesh *aNewMesh = new SMESHDS_Mesh(aNewMeshID,theIsEmbeddedMode);
00063   myMeshes[aNewMeshID] = aNewMesh;
00064   return aNewMeshID;
00065 }
00066 
00067 //=======================================================================
00068 //function : GetMesh
00069 //purpose  : 
00070 //=======================================================================
00071 SMESHDS_Mesh *SMESHDS_Document::GetMesh(int MeshID)
00072 {
00073         map<int,SMESHDS_Mesh*>::iterator it=myMeshes.find(MeshID);
00074         if (it==myMeshes.end())
00075         {
00076                 MESSAGE("SMESHDS_Document::GetMesh : ID not found");
00077                 return NULL;
00078         }
00079         else return (*it).second;
00080 }
00081 
00082 //=======================================================================
00083 //function : RemoveMesh
00084 //purpose  : 
00085 //=======================================================================
00086 void SMESHDS_Document::RemoveMesh(int MeshID)
00087 {
00088   map<int,SMESHDS_Mesh*>::iterator it=myMeshes.find(MeshID);
00089   if (it!=myMeshes.end())
00090     myMeshes.erase(it);
00091 }
00092 
00093 //=======================================================================
00094 //function : AddHypothesis
00095 //purpose  : 
00096 //=======================================================================
00097 void SMESHDS_Document::AddHypothesis(SMESHDS_Hypothesis * H)
00098 {
00099   myHypothesis[H->GetID()]=H;
00100 }
00101 
00102 //=======================================================================
00103 //function : GetHypothesis
00104 //purpose  : 
00105 //=======================================================================
00106 SMESHDS_Hypothesis * SMESHDS_Document::GetHypothesis(int HypID)
00107 {
00108         map<int,SMESHDS_Hypothesis*>::iterator it=myHypothesis.find(HypID);
00109         if (it==myHypothesis.end())
00110         {
00111                 MESSAGE("SMESHDS_Document::GetHypothesis : ID not found");
00112                 return NULL;
00113         }
00114         else return (*it).second;
00115 }
00116 
00117 //=======================================================================
00118 //function : RemoveHypothesis
00119 //purpose  : 
00120 //=======================================================================
00121 void SMESHDS_Document::RemoveHypothesis(int HypID)
00122 {
00123         map<int,SMESHDS_Hypothesis*>::iterator it=myHypothesis.find(HypID);
00124         if (it==myHypothesis.end())
00125                 MESSAGE("SMESHDS_Document::RemoveHypothesis : ID not found");   
00126         myHypothesis.erase(it);
00127 }
00128 
00129 //=======================================================================
00130 //function : NbMeshes
00131 //purpose  : 
00132 //=======================================================================
00133 int SMESHDS_Document::NbMeshes()
00134 {
00135         return myMeshes.size();
00136 }
00137 
00138 //=======================================================================
00139 //function : NbHypothesis
00140 //purpose  : 
00141 //=======================================================================
00142 int SMESHDS_Document::NbHypothesis()
00143 {
00144         return myHypothesis.size();
00145 }
00146 
00147 //=======================================================================
00148 //function : InitMeshesIterator
00149 //purpose  : 
00150 //=======================================================================
00151 void SMESHDS_Document::InitMeshesIterator()
00152 {
00153         myMeshesIt=myMeshes.begin();
00154 }
00155 
00156 //=======================================================================
00157 //function : NextMesh
00158 //purpose  : 
00159 //=======================================================================
00160 SMESHDS_Mesh * SMESHDS_Document::NextMesh()
00161 {
00162         SMESHDS_Mesh * toReturn=(*myMeshesIt).second;
00163         myMeshesIt++;
00164         return toReturn;
00165 }
00166 
00167 //=======================================================================
00168 //function : MoreMesh
00169 //purpose  : 
00170 //=======================================================================
00171 bool SMESHDS_Document::MoreMesh()
00172 {
00173         return myMeshesIt!=myMeshes.end();
00174 }
00175 
00176 //=======================================================================
00177 //function : InitHypothesisIterator
00178 //purpose  : 
00179 //=======================================================================
00180 void SMESHDS_Document::InitHypothesisIterator()
00181 {
00182         myHypothesisIt=myHypothesis.begin();
00183 }
00184 
00185 //=======================================================================
00186 //function : NextMesh
00187 //purpose  : 
00188 //=======================================================================
00189 SMESHDS_Hypothesis * SMESHDS_Document::NextHypothesis()
00190 {
00191         SMESHDS_Hypothesis * toReturn=(*myHypothesisIt).second;
00192         myHypothesisIt++;
00193         return toReturn;
00194 }
00195 
00196 //=======================================================================
00197 //function : MoreMesh
00198 //purpose  : 
00199 //=======================================================================
00200 bool SMESHDS_Document::MoreHypothesis()
00201 {
00202         return myHypothesisIt!=myHypothesis.end();
00203 }