Salome HOME
Join modifications from BR_Dev_For_4_0 tag V4_1_1.
[modules/med.git] / src / MEDMEM / MEDMEM_define.hxx
1 // Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
3 // 
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either 
7 // version 2.1 of the License.
8 // 
9 // This library is distributed in the hope that it will be useful 
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
12 // Lesser General Public License for more details.
13 //
14 // You should have received a copy of the GNU Lesser General Public  
15 // License along with this library; if not, write to the Free Software 
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
17 //
18 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 //
20 #ifndef DEFINE_HXX
21 #define DEFINE_HXX
22
23 #include <stdio.h>
24 #include <iostream>
25 #include <string>
26 #include <assert.h>
27
28 // UTILE AUX DEUX NAMESPACES
29 extern "C"{
30 #include <hdf5.h>
31 }
32
33
34 namespace MED_EN {
35   extern "C" { // on est la
36
37 // #define MED_NULL       (void *) NULL
38 // #define MED_MAX_PARA     20
39
40 // #define MED_TAILLE_DESC 200
41 // #define MED_TAILLE_IDENT  8
42 // #define MED_TAILLE_NOM   32
43 // #define MED_TAILLE_LNOM  80
44 // #define MED_TAILLE_PNOM   8
45
46
47     typedef long medGeometryElement;
48     const medGeometryElement MED_NONE = 0;
49     const medGeometryElement MED_POINT1 = 1;
50     const medGeometryElement MED_SEG2 = 102;
51     const medGeometryElement MED_SEG3 = 103;
52     const medGeometryElement MED_TRIA3 = 203;
53     const medGeometryElement MED_QUAD4 = 204;
54     const medGeometryElement MED_TRIA6 = 206;
55     const medGeometryElement MED_QUAD8 = 208;
56     const medGeometryElement MED_TETRA4 = 304;
57     const medGeometryElement MED_PYRA5 = 305;
58     const medGeometryElement MED_PENTA6 = 306;
59     const medGeometryElement MED_HEXA8 = 308;
60     const medGeometryElement MED_TETRA10 = 310;
61     const medGeometryElement MED_PYRA13 = 313;
62     const medGeometryElement MED_PENTA15 = 315;
63     const medGeometryElement MED_HEXA20 = 320;
64     const medGeometryElement MED_POLYGON = 400;
65     const medGeometryElement MED_POLYHEDRA = 500;
66     const medGeometryElement MED_ALL_ELEMENTS = 999;
67
68     typedef long medEntityMesh;
69     const medEntityMesh MED_CELL = 0;
70     const medEntityMesh MED_FACE = 1;
71     const medEntityMesh MED_EDGE = 2;
72     const medEntityMesh MED_NODE = 3;
73     const medEntityMesh MED_ALL_ENTITIES = 4;
74
75     typedef long medModeSwitch;
76     const medModeSwitch MED_FULL_INTERLACE = 0;
77     const medModeSwitch MED_NO_INTERLACE = 1;
78     const medModeSwitch MED_NO_INTERLACE_BY_TYPE = 2;
79     const medModeSwitch MED_UNDEFINED_INTERLACE = 3;
80     
81     typedef long medConnectivity;
82     const medConnectivity MED_NODAL = 0;
83     const medConnectivity MED_DESCENDING = 1;
84
85     typedef enum {MED_CARTESIAN, MED_POLAR, MED_BODY_FITTED} med_grid_type;
86
87     typedef enum {MED_LECT,MED_ECRI,MED_REMP,MED_CREA} med_mode_acces;
88
89     typedef enum {ASCENDING=7,DESCENDING=77} med_sort_direc;
90
91     typedef enum {MED_REEL64=6, MED_INT32=24,MED_INT64=26, MED_UNDEFINED_TYPE=0} med_type_champ;
92
93 // #define MED_NBR_GEOMETRIE_MAILLE 15
94 // #define MED_NBR_GEOMETRIE_FACE 4
95 // #define MED_NBR_GEOMETRIE_ARETE 2
96
97 typedef enum {MED_CART, MED_CYL, MED_SPHER} med_repere;
98
99 typedef enum {MED_FAUX, MED_VRAI} med_booleen ;
100
101 typedef enum {MED_GROUPE, MED_ATTR, MED_FAMILLE} med_dim_famille;
102
103 typedef enum {MED_COMP, MED_DTYPE} med_dim_champ;
104
105 typedef enum {MED_HDF_VERSION, MED_VERSION, MED_FICH_DES} med_fich_info;
106
107 // #define MED_NOPG   1                   /* -> pas de point de Gauss                    */
108 // #define MED_NOPFL  ""                  /* -> pas de profils utilisateur               */
109 // #define MED_NOPFLi "                                "  /* Variable Interne                      */
110 // #define MED_NOPF   0                   /* -> pas de profils pour _MEDdataseNnumEcrire */
111 // #define MED_NOPDT -1                   /* rem: pas de pas de temps negatifs           */
112 // #define MED_NONOR -1                   /* rem: pas de n°ordre negatif                 */
113 // #define MED_DIM1   1                   /* PAS */
114 //   //#define MED_ALL    0 !!!!! NB: WARNING MED_ALL deja utilise dans l'enum medGeometryElement !!!!!!!!
115 // #define MED_ALL    0
116
117 #if defined(SUN4SOL2) || defined(PCLINUX) || defined(PCLINUX64_32) || defined(OSF1_32) || defined(IRIX64_32) || defined(RS6000)
118 /* interface C/FORTRAN */
119 /* 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 ! */
120 // #define NOMF_POST_UNDERSCORE
121
122 /* correspondance des types avec HDF 5 */
123 typedef hsize_t        med_size;
124 typedef hssize_t       med_ssize;
125     //typedef hid_t          med_idt;
126 typedef herr_t         med_err;
127
128 /* types elementaires */
129 typedef int            med_int;
130 typedef double         med_float;
131 #endif
132
133 #if defined(HP9000)
134 /* correspondance des types avec HDF 5 */
135 typedef hsize_t        med_size;
136 typedef hssize_t       med_ssize;
137     //typedef hid_t          med_idt;
138 typedef herr_t         med_err;
139
140 /* types elementaires */
141 typedef int            med_int;
142 typedef double         med_float;
143 #endif
144
145 #if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64) 
146 // #define NOMF_POST_UNDERSCORE
147
148 /* correspondance des types avec HDF 5 */
149 typedef hsize_t        med_size;
150 typedef hssize_t       med_ssize;
151     //typedef hid_t          med_idt;
152 typedef herr_t         med_err;
153
154 /* types elementaires */
155 typedef long           med_int;
156 typedef double         med_float;
157 #endif
158
159
160 #if defined(PPRO_NT)
161 /* correspondance des types avec HDF 5 */
162 typedef hsize_t        med_size;
163 typedef hssize_t       med_ssize;
164     //typedef hid_t          med_idt;
165 typedef herr_t         med_err;
166
167 /* types elementaires */
168 typedef int            med_int;
169 typedef double         med_float;
170 #endif
171
172
173 // #if defined(NOMF_PRE_UNDERSCORE) && defined(NOMF_POST_UNDERSCORE)
174 // #   define NOMF(x)     _##x##_
175 // #endif
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
186   //#include "med_proto.h"
187
188   }
189
190 // valeurs des algos de connexites
191 #define FRACT_ALGO 10
192 #define MAX_LOOP 200
193 // fin
194
195 // Valeurs de IO_MED
196 //#define READ 0
197 //#define WRITE 1
198
199
200 #define MED_CLOSED   0
201 #define MED_OPENED   1
202 #define MED_INVALID -1
203 #define MED_ERROR   -1
204 #define MED_VALID    0
205 //#define MED_NULL     NULL
206
207 #define MED_RDONLY MED_LECT
208   //   rem: MED_WRONLY=MED_ECR n'empêche malheureusement pas de lire le fichier
209   //   mais permet de conserver l'existant. Attention à la création d'objet
210   //   ne prenant pas de paramètre de type mode d'accès il faut tester si il
211   //   est déjà présent dans le fichier. Si  MED_WRONLY=MED_REMP le fichier est
212   //   réinitialisé. Cf une évolution de MED.
213 #define MED_WRONLY MED_ECRI
214 #define MED_RDWR   MED_ECRI
215 #define MED_CREATE MED_CREA
216 // Fin
217
218 #define FAUX 0
219 #define VRAI 1
220 #define longueur_string 100
221 #define PRECISION 0.0000001
222 // #define undefined -1
223 #define UNDEFINED -1
224
225 // type des connectivites
226 //#define CONN_NOD 0
227 //#define CONN_DESC_PART 1
228 //#define CONN_DESC_TOT 2
229
230 // valeurs de type_interpolation
231 #define P1                 0
232 #define pseudo_P2          1
233 #define trilineaire        2
234 #define P2_adapte          3
235 #define VF_conservatif     4
236 #define VF_non_conservatif 5
237 // valeurs de type_mapping
238 #define connexite   0
239 #define conn_octree 1
240 #define brutal      2
241 // valeurs des type_support
242 #define support_noeud 0
243 #define support_maille 1
244 // retour des fonctions
245 #define OK 0
246 #define KO 1
247
248 //maximum number of groups handled by the Family Group converter
249 #define MAX_NB_GROUP 100000
250   /*
251     enum definition for the used Med File version V2.1 or V2.2
252     because of incompatibility between them.
253   */
254
255   typedef enum {V21 = 26, V22 = 75} medFileVersion;
256
257 // fin
258 }
259 // End Of NameSpace MED_EN
260
261 #endif /* DEFINE_HXX */