]> SALOME platform Git repositories - modules/med.git/blob - src/MEDMEM/MEDMEM_define.hxx
Salome HOME
Merge from BR_V5_DEV 16Feb09
[modules/med.git] / src / MEDMEM / MEDMEM_define.hxx
1 //  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 //  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
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.
10 //
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.
15 //
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
19 //
20 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 #ifndef DEFINE_HXX
23 #define DEFINE_HXX
24
25 #include <stdio.h>
26 #include <iostream>
27 #include <string>
28 #include <assert.h>
29
30 // UTILE AUX DEUX NAMESPACES
31 extern "C"{
32 #include <hdf5.h>
33 }
34
35
36 namespace MED_EN {
37   extern "C" { // on est la
38
39 // #define MED_NULL       (void *) NULL
40 // #define MED_MAX_PARA     20
41
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
47
48
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;
69
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;
76
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;
82     
83     typedef long medConnectivity;
84     const medConnectivity MED_NODAL = 0;
85     const medConnectivity MED_DESCENDING = 1;
86
87     typedef enum {MED_CARTESIAN, MED_POLAR, MED_BODY_FITTED} med_grid_type;
88
89     //typedef enum {MED_LECT,MED_ECRI,MED_REMP,MED_CREA} med_mode_acces;
90     typedef enum {RDONLY,WRONLY,RDWR} med_mode_acces;
91
92     typedef enum {ASCENDING=7,DESCENDING=77} med_sort_direc;
93
94     typedef enum {MED_REEL64=6, MED_INT32=24,MED_INT64=26, MED_UNDEFINED_TYPE=0} med_type_champ;
95
96 // #define MED_NBR_GEOMETRIE_MAILLE 15
97 // #define MED_NBR_GEOMETRIE_FACE 4
98 // #define MED_NBR_GEOMETRIE_ARETE 2
99
100 typedef enum {MED_CART, MED_CYL, MED_SPHER} med_repere;
101
102 typedef enum {MED_FAUX, MED_VRAI} med_booleen ;
103
104 typedef enum {MED_GROUPE, MED_ATTR, MED_FAMILLE} med_dim_famille;
105
106 typedef enum {MED_COMP, MED_DTYPE} med_dim_champ;
107
108 typedef enum {MED_HDF_VERSION, MED_VERSION, MED_FICH_DES} med_fich_info;
109
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 !!!!!!!!
118 // #define MED_ALL    0
119
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
124
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;
130
131 /* types elementaires */
132 typedef int            med_int;
133 typedef double         med_float;
134 #endif
135
136 #if defined(HP9000)
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;
142
143 /* types elementaires */
144 typedef int            med_int;
145 typedef double         med_float;
146 #endif
147
148 #if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64) 
149 // #define NOMF_POST_UNDERSCORE
150
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;
156
157 /* types elementaires */
158 typedef long           med_int;
159 typedef double         med_float;
160 #endif
161
162
163 #if defined(PPRO_NT)
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;
169
170 /* types elementaires */
171 typedef int            med_int;
172 typedef double         med_float;
173 #endif
174
175
176 // #if defined(NOMF_PRE_UNDERSCORE) && defined(NOMF_POST_UNDERSCORE)
177 // #   define NOMF(x)     _##x##_
178 // #endif
179 // #if defined(NOMF_PRE_UNDERSCORE) && !defined(NOMF_POST_UNDERSCORE)
180 // #   define NOMF(x)     _##x
181 // #endif
182 // #if !defined(NOMF_PRE_UNDERSCORE) && defined(NOMF_POST_UNDERSCORE)
183 // #   define NOMF(x)     x##_
184 // #endif
185 // #if !defined(NOMF_PRE_UNDERSCORE) && !defined(NOMF_POST_UNDERSCORE)
186 // #   define NOMF(x)     x
187 // #endif
188
189   //#include "med_proto.h"
190
191   }
192
193 // valeurs des algos de connexites
194 #define FRACT_ALGO 10
195 #define MAX_LOOP 200
196 // fin
197
198 // Valeurs de IO_MED
199 //#define READ 0
200 //#define WRITE 1
201
202
203 #define MED_CLOSED   0
204 #define MED_OPENED   1
205 #define MED_INVALID -1
206 #define MED_ERROR   -1
207 #define MED_VALID    0
208 //#define MED_NULL     NULL
209
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
219 // Fin
220
221 #define FAUX 0
222 #define VRAI 1
223 #define longueur_string 100
224 #define PRECISION 0.0000001
225 // #define undefined -1
226 #define MED_UNDEFINED -1
227
228 // type des connectivites
229 //#define CONN_NOD 0
230 //#define CONN_DESC_PART 1
231 //#define CONN_DESC_TOT 2
232
233 // valeurs de type_interpolation
234 #define P1                 0
235 #define pseudo_P2          1
236 #define trilineaire        2
237 #define P2_adapte          3
238 #define VF_conservatif     4
239 #define VF_non_conservatif 5
240 // valeurs de type_mapping
241 #define connexite   0
242 #define conn_octree 1
243 #define brutal      2
244 // valeurs des type_support
245 #define support_noeud 0
246 #define support_maille 1
247 // retour des fonctions
248 #define OK 0
249 #define KO 1
250
251 //maximum number of groups handled by the Family Group converter
252 #define MAX_NB_GROUP 100000
253   /*
254     enum definition for the used Med File version V2.1 or V2.2
255     because of incompatibility between them.
256   */
257
258   typedef enum {V21 = 26, V22 = 75} medFileVersion;
259
260 // fin
261 }
262 // End Of NameSpace MED_EN
263
264 #endif /* DEFINE_HXX */