Back to index

salome-med  6.5.0
MED_Algorithm.hxx
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 //  File   : 
00024 //  Author : 
00025 //  Module : 
00026 //  $Header: /home/server/cvs/MED/MED_SRC/src/MEDWrapper/Base/MED_Algorithm.hxx,v 1.6.2.1.6.2.10.1 2012-04-13 08:48:43 vsr Exp $
00027 //
00028 #ifndef MED_Algorithm_HeaderFile
00029 #define MED_Algorithm_HeaderFile
00030 
00031 #include "MED_WrapperBase.hxx"
00032 #include "MED_Structures.hxx"
00033 
00034 #include <set>
00035 
00036 namespace MED
00037 {
00038   //---------------------------------------------------------------
00039   typedef std::map<EGeometrieElement,PElemInfo> TGeom2ElemInfo;
00040   typedef std::map<EEntiteMaillage,TGeom2ElemInfo> TEntity2TGeom2ElemInfo;
00041 
00043   MEDWRAPPER_EXPORT
00044   TEntity2TGeom2ElemInfo
00045   GetEntity2TGeom2ElemInfo(const PWrapper& theWrapper, 
00046                            const PMeshInfo& theMeshInfo,
00047                            const MED::TEntityInfo& theEntityInfo);
00048 
00049 
00050   //---------------------------------------------------------------
00051   typedef std::set<PFamilyInfo> TFamilyInfoSet;
00052 
00054   MEDWRAPPER_EXPORT
00055   TFamilyInfoSet
00056   GetFamilyInfoSet(const PWrapper& theWrapper, 
00057                    const PMeshInfo& theMeshInfo);
00058   
00059 
00060   //---------------------------------------------------------------
00061   typedef boost::tuple<PFamilyInfo,TInt> TFamilyTSize;
00062 
00063   bool
00064   operator<(const TFamilyTSize& theLeft, const TFamilyTSize& theRight);
00065   typedef std::set<TFamilyTSize> TFamilyTSizeSet;
00066 
00067 
00068   //---------------------------------------------------------------
00069   typedef std::map<EEntiteMaillage,TFamilyTSizeSet> TEntity2FamilySet;
00070   
00072   MEDWRAPPER_EXPORT
00073   TEntity2FamilySet
00074   GetEntity2FamilySet(const PWrapper& theWrapper, 
00075                       const TEntity2TGeom2ElemInfo& theEntity2TGeom2ElemInfo,
00076                       const TFamilyInfoSet& theFamilyInfoSet);
00077   
00078 
00079   //---------------------------------------------------------------
00080   typedef std::map<std::string,TFamilyInfoSet> TGroupInfo;
00081   
00083   MEDWRAPPER_EXPORT
00084   TGroupInfo
00085   GetGroupInfo(const TFamilyInfoSet& theFamilyInfoSet);
00086   
00087   
00088   //---------------------------------------------------------------
00089   typedef std::set<PTimeStampInfo> TTimeStampInfoSet;
00090   typedef std::map<PFieldInfo,TTimeStampInfoSet> TFieldInfo2TimeStampInfoSet;
00091 
00093   MEDWRAPPER_EXPORT
00094   TFieldInfo2TimeStampInfoSet
00095   GetFieldInfo2TimeStampInfoSet(const PWrapper& theWrapper, 
00096                                 const PMeshInfo& theMeshInfo,
00097                                 const MED::TEntityInfo& theEntityInfo);
00098   
00099 
00100   //---------------------------------------------------------------
00101   typedef std::map<EEntiteMaillage,TFieldInfo2TimeStampInfoSet> TEntite2TFieldInfo2TimeStampInfoSet;
00102 
00104   MEDWRAPPER_EXPORT
00105   TEntite2TFieldInfo2TimeStampInfoSet
00106   GetEntite2TFieldInfo2TimeStampInfoSet(const TFieldInfo2TimeStampInfoSet& theFieldInfo2TimeStampInfoSet);
00107 
00108 
00109   //---------------------------------------------------------------
00110   typedef std::map<TGaussInfo::TKey,PGaussInfo,TGaussInfo::TLess> TKey2Gauss;
00111 
00113   MEDWRAPPER_EXPORT
00114   TKey2Gauss
00115   GetKey2Gauss(const PWrapper& theWrapper, 
00116                TErr* theErr = NULL,
00117                EModeSwitch theMode = eFULL_INTERLACE);
00118 
00119 
00120   //---------------------------------------------------------------
00122   MEDWRAPPER_EXPORT
00123   PProfileInfo
00124   GetProfileInfo(const PWrapper& theWrapper, 
00125                  const std::string& theProfileName,
00126                  TErr* theErr = NULL,
00127                  EModeProfil theMode = eCOMPACT);
00128 
00129 
00130   //---------------------------------------------------------------
00131   typedef std::map<TProfileInfo::TKey,PProfileInfo> TKey2Profile;
00132   typedef boost::tuple<EModeProfil,TKey2Profile> TMKey2Profile;
00133 
00135   MEDWRAPPER_EXPORT
00136   TMKey2Profile
00137   GetMKey2Profile(const PWrapper& theWrapper, 
00138                   TErr* theErr = NULL,
00139                   EModeProfil theMode = eCOMPACT);
00140 
00141   //---------------------------------------------------------------
00143   MEDWRAPPER_EXPORT
00144   EEntiteMaillage
00145   GetEntityByFamilyId(PGrilleInfo& theInfo,
00146                       TInt theId);
00147 
00148   typedef std::map<TInt,TInt> TFamilyID2NbCells;
00149   
00151   MEDWRAPPER_EXPORT
00152   TFamilyID2NbCells
00153   GetFamilyID2NbCells(PGrilleInfo& theInfo);
00154 
00156   MEDWRAPPER_EXPORT
00157   EEntiteMaillage
00158   ConvertEntity(const EEntiteMaillage& aEntity);
00159 
00160 }
00161 
00162 #endif