Back to index

salome-med  6.5.0
MED_Common.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_Common.hxx,v 1.7.2.1.6.4.2.1 2012-04-13 08:48:43 vsr Exp $
00027 //
00028 #ifndef MED_Common_HeaderFile
00029 #define MED_Common_HeaderFile
00030 
00031 #include "MED_WrapperBase.hxx"
00032 
00033 #include <string>
00034 #include <set>
00035 #include <map>
00036 
00037 #include <hdf5.h>
00038 
00039 #include <boost/tuple/tuple.hpp>
00040 
00041 #include "SALOMEconfig.h"
00042 
00043 #include "MED_Vector.hxx"
00044 #include "MED_SharedPtr.hxx"
00045 #include "MED_SliceArray.hxx"
00046 
00047 #ifdef WNT
00048 #pragma warning(disable:4099)
00049 #endif
00050 
00051 namespace MED{
00052 
00053   enum EVersion {eVUnknown = -1, eV2_1, eV2_2};
00054   
00055   typedef enum {eFAUX, eVRAI} EBooleen ; 
00056   typedef double TFloat;
00057 #if defined(HAVE_F77INT64)
00058   typedef long TInt;
00059 #else
00060   typedef int TInt;
00061 #endif 
00062   typedef hid_t TIdt;
00063   typedef herr_t TErr;
00064 
00065   typedef enum {eFULL_INTERLACE, eNO_INTERLACE} EModeSwitch;
00066 
00067   typedef enum {eFLOAT64=6, eINT=26} ETypeChamp;
00068 
00069   typedef enum {eNON_STRUCTURE, eSTRUCTURE} EMaillage;
00070 
00071   typedef enum {eCART, eCYL, eSPHER} ERepere; 
00072 
00073   typedef enum {eNOD, eDESC} EConnectivite ; 
00074 
00075   typedef enum {ePOINT1=1, eSEG2=102, eSEG3=103, eTRIA3=203,
00076                 eQUAD4=204, eTRIA6=206,eQUAD8=208, eQUAD9=209,eTETRA4=304,
00077                 ePYRA5=305, ePENTA6=306, eHEXA8=308, eOCTA12=312, eTETRA10=310, 
00078                 ePYRA13=313, ePENTA15=315, eHEXA20=320, eHEXA27=327,
00079                 ePOLYGONE=400, ePOLYEDRE=500, eNONE=0} EGeometrieElement;
00080 
00081   typedef enum {eMAILLE, eFACE, eARETE, eNOEUD, eNOEUD_ELEMENT} EEntiteMaillage; 
00082 
00083   typedef enum {eNO_PFLMOD, eGLOBAL, eCOMPACT}  EModeProfil; 
00084 
00085   typedef enum {eGRILLE_CARTESIENNE, eGRILLE_POLAIRE, eGRILLE_STANDARD} EGrilleType;
00086 
00087   typedef enum {eCOOR, eCONN, eNOM, eNUM, eFAM, eCOOR_IND1, eCOOR_IND2, eCOOR_IND3} ETable;
00088 
00089   typedef TVector<TFloat> TFloatVector;
00090   typedef TVector<std::string> TStringVector;
00091   typedef TVector<TInt> TIntVector;
00092   typedef std::set<std::string> TStringSet;
00093   
00094   typedef std::map<EGeometrieElement,TInt> TGeom2Size;
00095   typedef std::map<EEntiteMaillage,TGeom2Size> TEntityInfo;
00096 
00097   typedef std::set<EGeometrieElement> TGeomSet;
00098   typedef std::map<EEntiteMaillage,TGeomSet> TEntity2GeomSet;
00099 
00100   MEDWRAPPER_EXPORT 
00101   const TEntity2GeomSet& 
00102   GetEntity2GeomSet();
00103 
00104   template<EVersion>
00105   TInt MEDWRAPPER_EXPORT
00106   GetDESCLength();
00107   
00108   template<EVersion>
00109   TInt MEDWRAPPER_EXPORT
00110   GetIDENTLength();
00111   
00112   template<EVersion>
00113   TInt MEDWRAPPER_EXPORT
00114   GetNOMLength();
00115   
00116   template<EVersion>
00117   TInt MEDWRAPPER_EXPORT
00118   GetLNOMLength();
00119   
00120   template<EVersion>
00121   TInt MEDWRAPPER_EXPORT
00122   GetPNOMLength();
00123   
00124   template<EVersion>
00125   void MEDWRAPPER_EXPORT
00126   GetVersionRelease(TInt& majeur, TInt& mineur, TInt& release);
00127   
00128   template<EVersion>
00129   MEDWRAPPER_EXPORT
00130   TInt
00131   GetNbConn(EGeometrieElement typmai,
00132             EEntiteMaillage typent,
00133             TInt mdim);
00134   
00135   MEDWRAPPER_EXPORT
00136   TInt 
00137   GetNbNodes(EGeometrieElement typmai);
00138 
00139   struct TNameInfo;
00140   typedef SharedPtr<TNameInfo> PNameInfo;
00141   
00142   struct TMeshInfo;
00143   typedef SharedPtr<TMeshInfo> PMeshInfo;
00144   
00145   struct TFamilyInfo;
00146   typedef SharedPtr<TFamilyInfo> PFamilyInfo;
00147 
00148   struct TElemInfo;
00149   typedef SharedPtr<TElemInfo> PElemInfo;
00150 
00151   struct TNodeInfo;
00152   typedef SharedPtr<TNodeInfo> PNodeInfo;
00153 
00154   struct TPolygoneInfo;
00155   typedef SharedPtr<TPolygoneInfo> PPolygoneInfo;
00156 
00157   struct TPolyedreInfo;
00158   typedef SharedPtr<TPolyedreInfo> PPolyedreInfo;
00159 
00160   struct TCellInfo;
00161   typedef SharedPtr<TCellInfo> PCellInfo;
00162 
00163   struct TFieldInfo;
00164   typedef SharedPtr<TFieldInfo> PFieldInfo;
00165 
00166   struct TTimeStampInfo;
00167   typedef SharedPtr<TTimeStampInfo> PTimeStampInfo;
00168 
00169   struct TProfileInfo;
00170   typedef SharedPtr<TProfileInfo> PProfileInfo;
00171   
00172   struct TGaussInfo;
00173   typedef SharedPtr<TGaussInfo> PGaussInfo;
00174   
00175   class TGrilleInfo;
00176   typedef SharedPtr<TGrilleInfo> PGrilleInfo;
00177 
00178   struct TTimeStampValueBase;
00179   typedef SharedPtr<TTimeStampValueBase> PTimeStampValueBase;
00180 
00181   struct TWrapper;
00182   typedef SharedPtr<TWrapper> PWrapper;
00183 }
00184 
00185 
00186 #endif