00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
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, eTETRA4=304,
00077 ePYRA5=305, ePENTA6=306, eHEXA8=308, eTETRA10=310,
00078 ePYRA13=313, ePENTA15=315, eHEXA20=320,
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