1 // Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
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.
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.
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
18 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
28 // UTILE AUX DEUX NAMESPACES
35 extern "C" { // on est la
37 // #define MED_NULL (void *) NULL
38 // #define MED_MAX_PARA 20
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
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;
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;
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;
81 typedef long medConnectivity;
82 const medConnectivity MED_NODAL = 0;
83 const medConnectivity MED_DESCENDING = 1;
85 typedef enum {MED_CARTESIAN, MED_POLAR, MED_BODY_FITTED} med_grid_type;
87 typedef enum {MED_LECT,MED_ECRI,MED_REMP,MED_CREA} med_mode_acces;
89 typedef enum {ASCENDING=7,DESCENDING=77} med_sort_direc;
91 typedef enum {MED_REEL64=6, MED_INT32=24,MED_INT64=26, MED_UNDEFINED_TYPE=0} med_type_champ;
93 // #define MED_NBR_GEOMETRIE_MAILLE 15
94 // #define MED_NBR_GEOMETRIE_FACE 4
95 // #define MED_NBR_GEOMETRIE_ARETE 2
97 typedef enum {MED_CART, MED_CYL, MED_SPHER} med_repere;
99 typedef enum {MED_FAUX, MED_VRAI} med_booleen ;
101 typedef enum {MED_GROUPE, MED_ATTR, MED_FAMILLE} med_dim_famille;
103 typedef enum {MED_COMP, MED_DTYPE} med_dim_champ;
105 typedef enum {MED_HDF_VERSION, MED_VERSION, MED_FICH_DES} med_fich_info;
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 !!!!!!!!
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
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;
128 /* types elementaires */
130 typedef double med_float;
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;
140 /* types elementaires */
142 typedef double med_float;
145 #if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
146 // #define NOMF_POST_UNDERSCORE
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;
154 /* types elementaires */
155 typedef long med_int;
156 typedef double med_float;
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;
167 /* types elementaires */
169 typedef double med_float;
173 // #if defined(NOMF_PRE_UNDERSCORE) && defined(NOMF_POST_UNDERSCORE)
174 // # define NOMF(x) _##x##_
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
186 //#include "med_proto.h"
190 // valeurs des algos de connexites
191 #define FRACT_ALGO 10
202 #define MED_INVALID -1
205 //#define MED_NULL NULL
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
220 #define longueur_string 100
221 #define PRECISION 0.0000001
222 // #define undefined -1
225 // type des connectivites
227 //#define CONN_DESC_PART 1
228 //#define CONN_DESC_TOT 2
230 // valeurs de type_interpolation
233 #define trilineaire 2
235 #define VF_conservatif 4
236 #define VF_non_conservatif 5
237 // valeurs de type_mapping
239 #define conn_octree 1
241 // valeurs des type_support
242 #define support_noeud 0
243 #define support_maille 1
244 // retour des fonctions
248 //maximum number of groups handled by the Family Group converter
249 #define MAX_NB_GROUP 100000
251 enum definition for the used Med File version V2.1 or V2.2
252 because of incompatibility between them.
255 typedef enum {V21 = 26, V22 = 75} medFileVersion;
259 // End Of NameSpace MED_EN
261 #endif /* DEFINE_HXX */