1 // Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
3 // Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
30 // UTILE AUX DEUX NAMESPACES
37 extern "C" { // on est la
39 // #define MED_NULL (void *) NULL
40 // #define MED_MAX_PARA 20
42 // #define MED_TAILLE_DESC 200
43 // #define MED_TAILLE_IDENT 8
44 // #define MED_TAILLE_NOM 32
45 // #define MED_TAILLE_LNOM 80
46 // #define MED_TAILLE_PNOM 8
49 typedef long medGeometryElement;
50 const medGeometryElement MED_NONE = 0;
51 const medGeometryElement MED_POINT1 = 1;
52 const medGeometryElement MED_SEG2 = 102;
53 const medGeometryElement MED_SEG3 = 103;
54 const medGeometryElement MED_TRIA3 = 203;
55 const medGeometryElement MED_QUAD4 = 204;
56 const medGeometryElement MED_TRIA6 = 206;
57 const medGeometryElement MED_QUAD8 = 208;
58 const medGeometryElement MED_TETRA4 = 304;
59 const medGeometryElement MED_PYRA5 = 305;
60 const medGeometryElement MED_PENTA6 = 306;
61 const medGeometryElement MED_HEXA8 = 308;
62 const medGeometryElement MED_TETRA10 = 310;
63 const medGeometryElement MED_PYRA13 = 313;
64 const medGeometryElement MED_PENTA15 = 315;
65 const medGeometryElement MED_HEXA20 = 320;
66 const medGeometryElement MED_POLYGON = 400;
67 const medGeometryElement MED_POLYHEDRA = 500;
68 const medGeometryElement MED_ALL_ELEMENTS = 999;
70 typedef long medEntityMesh;
71 const medEntityMesh MED_CELL = 0;
72 const medEntityMesh MED_FACE = 1;
73 const medEntityMesh MED_EDGE = 2;
74 const medEntityMesh MED_NODE = 3;
75 const medEntityMesh MED_ALL_ENTITIES = 4;
77 typedef long medModeSwitch;
78 const medModeSwitch MED_FULL_INTERLACE = 0;
79 const medModeSwitch MED_NO_INTERLACE = 1;
80 const medModeSwitch MED_NO_INTERLACE_BY_TYPE = 2;
81 const medModeSwitch MED_UNDEFINED_INTERLACE = 3;
83 typedef long medConnectivity;
84 const medConnectivity MED_NODAL = 0;
85 const medConnectivity MED_DESCENDING = 1;
87 typedef enum {MED_CARTESIAN, MED_POLAR, MED_BODY_FITTED} med_grid_type;
89 //typedef enum {MED_LECT,MED_ECRI,MED_REMP,MED_CREA} med_mode_acces;
90 typedef enum {RDONLY,WRONLY,RDWR} med_mode_acces;
92 typedef enum {ASCENDING=7,DESCENDING=77} med_sort_direc;
94 typedef enum {MED_REEL64=6, MED_INT32=24,MED_INT64=26, MED_UNDEFINED_TYPE=0} med_type_champ;
96 // #define MED_NBR_GEOMETRIE_MAILLE 15
97 // #define MED_NBR_GEOMETRIE_FACE 4
98 // #define MED_NBR_GEOMETRIE_ARETE 2
100 typedef enum {MED_CART, MED_CYL, MED_SPHER} med_repere;
102 typedef enum {MED_FAUX, MED_VRAI} med_booleen ;
104 typedef enum {MED_GROUPE, MED_ATTR, MED_FAMILLE} med_dim_famille;
106 typedef enum {MED_COMP, MED_DTYPE} med_dim_champ;
108 typedef enum {MED_HDF_VERSION, MED_VERSION, MED_FICH_DES} med_fich_info;
110 // #define MED_NOPG 1 /* -> pas de point de Gauss */
111 // #define MED_NOPFL "" /* -> pas de profils utilisateur */
112 // #define MED_NOPFLi " " /* Variable Interne */
113 // #define MED_NOPF 0 /* -> pas de profils pour _MEDdataseNnumEcrire */
114 // #define MED_NOPDT -1 /* rem: pas de pas de temps negatifs */
115 // #define MED_NONOR -1 /* rem: pas de n°ordre negatif */
116 // #define MED_DIM1 1 /* PAS */
117 // //#define MED_ALL 0 !!!!! NB: WARNING MED_ALL deja utilise dans l'enum medGeometryElement !!!!!!!!
120 #if defined(SUN4SOL2) || defined(PCLINUX) || defined(PCLINUX64_32) || defined(OSF1_32) || defined(IRIX64_32) || defined(RS6000)
121 /* interface C/FORTRAN */
122 /* this true only with g77 and gcc : we must change it to use directly NOMF_... and INT32 or INT64 - it will be more simple to understand and to use ! */
123 // #define NOMF_POST_UNDERSCORE
125 /* correspondance des types avec HDF 5 */
126 typedef hsize_t med_size;
127 typedef hssize_t med_ssize;
128 //typedef hid_t med_idt;
129 typedef herr_t med_err;
131 /* types elementaires */
133 typedef double med_float;
137 /* correspondance des types avec HDF 5 */
138 typedef hsize_t med_size;
139 typedef hssize_t med_ssize;
140 //typedef hid_t med_idt;
141 typedef herr_t med_err;
143 /* types elementaires */
145 typedef double med_float;
148 #if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
149 // #define NOMF_POST_UNDERSCORE
151 /* correspondance des types avec HDF 5 */
152 typedef hsize_t med_size;
153 typedef hssize_t med_ssize;
154 //typedef hid_t med_idt;
155 typedef herr_t med_err;
157 /* types elementaires */
158 typedef long med_int;
159 typedef double med_float;
164 /* correspondance des types avec HDF 5 */
165 typedef hsize_t med_size;
166 typedef hssize_t med_ssize;
167 //typedef hid_t med_idt;
168 typedef herr_t med_err;
170 /* types elementaires */
172 typedef double med_float;
176 // #if defined(NOMF_PRE_UNDERSCORE) && defined(NOMF_POST_UNDERSCORE)
177 // # define NOMF(x) _##x##_
179 // #if defined(NOMF_PRE_UNDERSCORE) && !defined(NOMF_POST_UNDERSCORE)
180 // # define NOMF(x) _##x
182 // #if !defined(NOMF_PRE_UNDERSCORE) && defined(NOMF_POST_UNDERSCORE)
183 // # define NOMF(x) x##_
185 // #if !defined(NOMF_PRE_UNDERSCORE) && !defined(NOMF_POST_UNDERSCORE)
186 // # define NOMF(x) x
189 //#include "med_proto.h"
193 // valeurs des algos de connexites
194 #define FRACT_ALGO 10
205 #define MED_INVALID -1
208 //#define MED_NULL NULL
210 //#define MED_RDONLY RDONLY
211 //// rem: MED_WRONLY=MED_ECR n'empêche malheureusement pas de lire le fichier
212 //// mais permet de conserver l'existant. Attention à la création d'objet
213 //// ne prenant pas de paramètre de type mode d'accès il faut tester si il
214 //// est déjà présent dans le fichier. Si MED_WRONLY=MED_REMP le fichier est
215 //// réinitialisé. Cf une évolution de MED.
216 //#define MED_WRONLY WRONLY
217 //#define MED_RDWR RDWR
218 //#define MED_CREATE MED_CREA
223 #define longueur_string 100
224 #define PRECISION 0.0000001
225 // #define undefined -1
226 #define MED_UNDEFINED -1
228 // type des connectivites
230 //#define CONN_DESC_PART 1
231 //#define CONN_DESC_TOT 2
233 // valeurs de type_interpolation
236 #define trilineaire 2
238 #define VF_conservatif 4
239 #define VF_non_conservatif 5
240 // valeurs de type_mapping
242 #define conn_octree 1
244 // valeurs des type_support
245 #define support_noeud 0
246 #define support_maille 1
247 // retour des fonctions
251 //maximum number of groups handled by the Family Group converter
252 #define MAX_NB_GROUP 100000
254 enum definition for the used Med File version V2.1 or V2.2
255 because of incompatibility between them.
258 typedef enum {V21 = 26, V22 = 75} medFileVersion;
262 // End Of NameSpace MED_EN
264 #endif /* DEFINE_HXX */