1 // Copyright (C) 2007-2012 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
31 // UTILE AUX DEUX NAMESPACES
37 med_err MEDfieldComputingStepInfo(const med_idt fid,
38 const char * const fieldname,
40 med_int * const numdt,
41 med_int * const numit,
42 med_float * const dt);
44 med_err MEDmeshEntityFamilyNumberRd(const med_idt fid,
45 const char* const meshname,
48 const med_entity_type entitype,
49 const med_geometry_type geotype,
50 med_int * const number);
52 med_err MEDmeshEntityNumberRd(const med_idt fid,
53 const char* const meshname,
56 const med_entity_type entitype,
57 const med_geometry_type geotype,
58 med_int * const number);
60 med_err MEDfieldCr( const med_idt fid,
61 const char * const fieldname,
62 const med_field_type fieldtype,
63 const med_int nbofcomponent,
64 const char * const componentname,
65 const char * const componentunit,
66 const char * const dtunit,
67 const char * const meshname);
72 extern "C" { // on est la
74 // #define MED_NULL (void *) NULL
75 // #define MED_MAX_PARA 20
77 // #define MED_TAILLE_DESC 200
78 // #define MED_TAILLE_IDENT 8
79 // #define MED_TAILLE_NOM 32
80 // #define MED_TAILLE_LNOM 80
81 // #define MED_TAILLE_PNOM 8
137 #ifdef MED_ALL_ELEMENTS
138 #undef MED_ALL_ELEMENTS
141 typedef long medGeometryElement;
142 const medGeometryElement MED_NONE = 0;
143 const medGeometryElement MED_POINT1 = 1;
144 const medGeometryElement MED_SEG2 = 102;
145 const medGeometryElement MED_SEG3 = 103;
146 const medGeometryElement MED_TRIA3 = 203;
147 const medGeometryElement MED_QUAD4 = 204;
148 const medGeometryElement MED_TRIA6 = 206;
149 const medGeometryElement MED_QUAD8 = 208;
150 const medGeometryElement MED_TETRA4 = 304;
151 const medGeometryElement MED_PYRA5 = 305;
152 const medGeometryElement MED_PENTA6 = 306;
153 const medGeometryElement MED_HEXA8 = 308;
154 const medGeometryElement MED_TETRA10 = 310;
155 const medGeometryElement MED_PYRA13 = 313;
156 const medGeometryElement MED_PENTA15 = 315;
157 const medGeometryElement MED_HEXA20 = 320;
158 const medGeometryElement MED_POLYGON = 400;
159 const medGeometryElement MED_POLYHEDRA = 500;
160 const medGeometryElement MED_ALL_ELEMENTS = 999;
162 typedef long medEntityMesh;
163 const medEntityMesh MED_CELL = 0;
164 const medEntityMesh MED_FACE = 1;
165 const medEntityMesh MED_EDGE = 2;
166 const medEntityMesh MED_NODE = 3;
167 const medEntityMesh MED_ALL_ENTITIES = 4;
169 typedef long medModeSwitch;
170 const medModeSwitch MED_FULL_INTERLACE = 0;
171 const medModeSwitch MED_NO_INTERLACE = 1;
172 const medModeSwitch MED_NO_INTERLACE_BY_TYPE = 2;
173 const medModeSwitch MED_UNDEFINED_INTERLACE = 3;
175 typedef long medConnectivity;
176 const medConnectivity MED_NODAL = 0;
177 const medConnectivity MED_DESCENDING = 1;
179 typedef enum {MED_CARTESIAN, MED_POLAR, MED_BODY_FITTED} med_grid_type;
181 //typedef enum {MED_LECT,MED_ECRI,MED_REMP,MED_CREA} med_mode_acces;
182 typedef enum {RDONLY,WRONLY,RDWR} med_mode_acces;
184 typedef enum {ASCENDING=7,DESCENDING=77} med_sort_direc;
186 typedef enum {MED_REEL64=6, MED_INT32=24,MED_INT64=26, MED_UNDEFINED_TYPE=0} med_type_champ;
188 // #define MED_NBR_GEOMETRIE_MAILLE 15
189 // #define MED_NBR_GEOMETRIE_FACE 4
190 // #define MED_NBR_GEOMETRIE_ARETE 2
192 typedef enum {MED_CART, MED_CYL, MED_SPHER} med_repere;
194 typedef enum {MED_FAUX, MED_VRAI} med_booleen ;
196 typedef enum {MED_GROUPE, MED_ATTR, MED_FAMILLE} med_dim_famille;
198 typedef enum {MED_COMP, MED_DTYPE} med_dim_champ;
200 typedef enum {MED_HDF_VERSION, MED_VERSION, MED_FICH_DES} med_fich_info;
202 // #define MED_NOPG 1 /* -> pas de point de Gauss */
203 // #define MED_NOPFL "" /* -> pas de profils utilisateur */
204 // #define MED_NOPFLi " " /* Variable Interne */
205 // #define MED_NOPF 0 /* -> pas de profils pour _MEDdataseNnumEcrire */
206 // #define MED_NOPDT -1 /* rem: pas de pas de temps negatifs */
207 // #define MED_NONOR -1 /* rem: pas de n°ordre negatif */
208 // #define MED_DIM1 1 /* PAS */
209 // //#define MED_ALL 0 !!!!! NB: WARNING MED_ALL deja utilise dans l'enum medGeometryElement !!!!!!!!
212 #if defined(SUN4SOL2) || defined(PCLINUX) || defined(PCLINUX64_32) || defined(OSF1_32) || defined(IRIX64_32) || defined(RS6000)
213 /* interface C/FORTRAN */
214 /* 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 ! */
215 // #define NOMF_POST_UNDERSCORE
217 /* correspondance des types avec HDF 5 */
218 typedef hsize_t med_size;
219 typedef hssize_t med_ssize;
220 //typedef hid_t med_idt;
221 typedef herr_t med_err;
223 /* types elementaires */
225 typedef double med_float;
229 /* correspondance des types avec HDF 5 */
230 typedef hsize_t med_size;
231 typedef hssize_t med_ssize;
232 //typedef hid_t med_idt;
233 typedef herr_t med_err;
235 /* types elementaires */
237 typedef double med_float;
240 #if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
241 // #define NOMF_POST_UNDERSCORE
243 /* correspondance des types avec HDF 5 */
244 typedef hsize_t med_size;
245 typedef hssize_t med_ssize;
246 //typedef hid_t med_idt;
247 typedef herr_t med_err;
249 /* types elementaires */
250 typedef long med_int;
251 typedef double med_float;
256 /* correspondance des types avec HDF 5 */
257 typedef hsize_t med_size;
258 typedef hssize_t med_ssize;
259 //typedef hid_t med_idt;
260 typedef herr_t med_err;
262 /* types elementaires */
264 typedef double med_float;
268 // #if defined(NOMF_PRE_UNDERSCORE) && defined(NOMF_POST_UNDERSCORE)
269 // # define NOMF(x) _##x##_
271 // #if defined(NOMF_PRE_UNDERSCORE) && !defined(NOMF_POST_UNDERSCORE)
272 // # define NOMF(x) _##x
274 // #if !defined(NOMF_PRE_UNDERSCORE) && defined(NOMF_POST_UNDERSCORE)
275 // # define NOMF(x) x##_
277 // #if !defined(NOMF_PRE_UNDERSCORE) && !defined(NOMF_POST_UNDERSCORE)
278 // # define NOMF(x) x
281 //#include "med_proto.h"
285 // valeurs des algos de connexites
286 const int FRACT_ALGO = 10;
287 const int MAX_LOOP = 200;
295 const int MED_CLOSED = 0;
296 const int MED_OPENED = 1;
297 const int MED_INVALID = -1;
298 const int MED_ERROR = -1;
299 const int MED_VALID = 0;
300 //#define MED_NULL NULL
302 //#define MED_RDONLY RDONLY
303 //// rem: MED_WRONLY=MED_ECR n'empêche malheureusement pas de lire le fichier
304 //// mais permet de conserver l'existant. Attention à la création d'objet
305 //// ne prenant pas de paramètre de type mode d'accès il faut tester si il
306 //// est déjà présent dans le fichier. Si MED_WRONLY=MED_REMP le fichier est
307 //// réinitialisé. Cf une évolution de MED.
308 //#define MED_WRONLY WRONLY
309 //#define MED_RDWR RDWR
310 //#define MED_CREATE MED_CREA
313 const int longueur_string = 100;
314 const double PRECISION = 0.0000001;
315 const int MED_UNDEFINED = -1;
317 // type des connectivites
319 //#define CONN_DESC_PART 1
320 //#define CONN_DESC_TOT 2
322 // valeurs de type_interpolation
324 const int pseudo_P2 = 1;
325 const int trilineaire = 2;
326 const int P2_adapte = 3;
327 const int VF_conservatif = 4;
328 const int VF_non_conservatif = 5;
329 // valeurs de type_mapping
330 const int connexite = 0;
331 const int conn_octree = 1;
332 const int brutal = 2;
333 // valeurs des type_support
334 const int support_noeud = 0;
335 const int support_maille = 1;
336 // retour des fonctions
340 //maximum number of groups handled by the Family Group converter
341 const int MAX_NB_GROUP = 100000;
343 enum definition for the used Med File version V2.1 or V2.2
344 because of incompatibility between them.
347 typedef enum {V21 = 26, V22 = 75} medFileVersion;
351 // End Of NameSpace MED_EN
353 #endif /* DEFINE_HXX */