3 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 // See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
29 #ifndef MED_Common_HeaderFile
30 #define MED_Common_HeaderFile
41 #include <boost/tuple/tuple.hpp>
43 #include "SALOMEconfig.h"
45 #include "MED_Vector.hxx"
46 #include "MED_SharedPtr.hxx"
47 #include "MED_SliceArray.hxx"
51 enum EVersion {eVUnknown = -1, eV2_1, eV2_2};
53 typedef enum {eFAUX, eVRAI} EBooleen ;
54 typedef double TFloat;
55 #if defined(SUN4SOL2) || defined(PCLINUX) || defined(OSF1_32) || defined(IRIX64_32) || defined(RS6000) || defined(HP9000)
58 #if defined(IRIX64) || defined(OSF1)
64 typedef enum {eFULL_INTERLACE, eNO_INTERLACE} EModeSwitch;
66 typedef enum {eFLOAT64=6, eINT=26} ETypeChamp;
68 typedef enum {eNON_STRUCTURE, eSTRUCTURE} EMaillage;
70 typedef enum {eCART, eCYL, eSPHER} ERepere;
72 typedef enum {eNOD, eDESC} EConnectivite ;
74 typedef enum {ePOINT1=1, eSEG2=102, eSEG3=103, eTRIA3=203,
75 eQUAD4=204, eTRIA6=206,eQUAD8=208, eTETRA4=304,
76 ePYRA5=305, ePENTA6=306, eHEXA8=308, eTETRA10=310,
77 ePYRA13=313, ePENTA15=315, eHEXA20=320,
78 ePOLYGONE=400, ePOLYEDRE=500, eNONE=0} EGeometrieElement;
80 typedef enum {eMAILLE, eFACE, eARETE, eNOEUD} EEntiteMaillage;
82 typedef enum {eNO_PFLMOD, eGLOBAL, eCOMPACT} EModeProfil;
84 typedef TVector<TFloat> TFloatVector;
85 typedef TVector<std::string> TStringVector;
86 typedef TVector<TInt> TIntVector;
87 typedef std::set<std::string> TStringSet;
89 typedef std::map<EGeometrieElement,TInt> TGeom2Size;
90 typedef std::map<EEntiteMaillage,TGeom2Size> TEntityInfo;
92 typedef std::set<EGeometrieElement> TGeomSet;
93 typedef std::map<EEntiteMaillage,TGeomSet> TEntity2GeomSet;
95 const TEntity2GeomSet&
120 GetNbConn(EGeometrieElement typmai,
121 EEntiteMaillage typent,
125 GetNbNodes(EGeometrieElement typmai);
128 typedef SharedPtr<TNameInfo> PNameInfo;
131 typedef SharedPtr<TMeshInfo> PMeshInfo;
134 typedef SharedPtr<TFamilyInfo> PFamilyInfo;
137 typedef SharedPtr<TElemInfo> PElemInfo;
140 typedef SharedPtr<TNodeInfo> PNodeInfo;
142 struct TPolygoneInfo;
143 typedef SharedPtr<TPolygoneInfo> PPolygoneInfo;
145 struct TPolyedreInfo;
146 typedef SharedPtr<TPolyedreInfo> PPolyedreInfo;
149 typedef SharedPtr<TCellInfo> PCellInfo;
152 typedef SharedPtr<TFieldInfo> PFieldInfo;
154 struct TTimeStampInfo;
155 typedef SharedPtr<TTimeStampInfo> PTimeStampInfo;
158 typedef SharedPtr<TProfileInfo> PProfileInfo;
161 typedef SharedPtr<TGaussInfo> PGaussInfo;
163 struct TTimeStampVal;
164 typedef SharedPtr<TTimeStampVal> PTimeStampVal;
167 typedef SharedPtr<TWrapper> PWrapper;