mmg3d
libmmgtypesf.h
Go to the documentation of this file.
1 ! /* This file is automatically generated by the"genheader.c" code
2 ! ** and the "genfort.pl" script (scripts directory).
3 ! ** Do not modified it by hand, it will be discarded.
4 ! **
5 ! ** This scripts recopy the macros of the libmmg*.h file
6 ! ** and convert enumerations into macros.
7 ! **
8 ! ** Note: "genfort.pl" is automatically called by the "genheader.c"
9 ! ** executable code.
10 ! **
11 ! ** See the "libmmg*.h" file for a correct displaying of the documentation.
12 ! */
13 
14 #define MMG5_DATA_PTR_T INTEGER(kind=4)
15 ! /* =============================================================================
16 ! ** This file is part of the mmg software package for the tetrahedral
17 ! ** mesh modification.
18 ! ** Copyright (c) Bx INP/Inria/UBordeaux/UPMC, 2004- .
19 ! **
20 ! ** mmg is free software: you can redistribute it and/or modify it
21 ! ** under the terms of the GNU Lesser General Public License as published
22 ! ** by the Free Software Foundation, either version 3 of the License, or
23 ! ** (at your option) any later version.
24 ! **
25 ! ** mmg is distributed in the hope that it will be useful, but WITHOUT
26 ! ** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
27 ! ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
28 ! ** License for more details.
29 ! **
30 ! ** You should have received a copy of the GNU Lesser General Public
31 ! ** License and of the GNU General Public License along with mmg (in
32 ! ** files COPYING.LESSER and COPYING). If not, see
33 ! ** <http://www.gnu.org/licenses/>. Please read their terms carefully and
34 ! ** use this copy of the mmg distribution only if you accept them.
35 ! ** =============================================================================
36 ! */
37 
38 
39 !
43 ! #include <stdint.h>
44 ! #include <stdarg.h>
45 
46 
47 #ifndef _LIBMMGTYPES_H
48 #define _LIBMMGTYPES_H
49 
50 !
57 #define MMG5_SUCCESS 0
58 !
66 #define MMG5_LOWFAILURE 1
67 !
75 #define MMG5_STRONGFAILURE 2
76 
77 !
82 #define MG_ISO 10
83 
84 !
94 #define MMG5_ARG_start %val(1)
95 !
104 #define MMG5_ARG_ppMesh %val(2)
105 !
115 #define MMG5_ARG_ppLs %val(3)
116 !
126 #define MMG5_ARG_ppMet %val(4)
127 !
137 #define MMG5_ARG_ppDisp %val(5)
138 !
148 #define MMG5_ARG_ppSols %val(6)
149 !
158 #define MMG5_ARG_pMesh %val(7)
159 !
168 #define MMG5_ARG_pMet %val(8)
169 !
178 #define MMG5_ARG_pDisp %val(9)
179 !
189 #define MMG5_ARG_end %val(10)
190 
191 !
196 !
197 #define MMG5_Notype 0
198 !
199 #define MMG5_Scalar 1
200 !
201 #define MMG5_Vector 2
202 !
203 #define MMG5_Tensor 3
204 
205 !
210 !
211 #define MMG5_Noentity 0
212 !
213 #define MMG5_Vertex 1
214 !
215 #define MMG5_Triangle 2
216 !
217 #define MMG5_Tetrahedron 3
218 
219 !
229 ! typedef struct {
230 ! double hmin;
231 ! double hmax;
232 ! double hausd;
233 ! int ref;
234 ! char elt;
235 ! } MMG5_Par; typedef MMG5_Par * MMG5_pPar;
236 
237 !
243 ! typedef struct {
244 ! double c[3];
245 ! double n[3];
246 ! int ref;
247 ! int xp;
248 ! int tmp;
250 ! int flag;
251 ! int s;
252 ! int16_t tag;
254 ! char tagdel;
255 ! } MMG5_Point;
257 
258 !
263 ! typedef struct {
264 ! double n1[3],n2[3];
266 ! } MMG5_xPoint;
268 
269 !
274 ! typedef struct {
275 ! int a,b;
276 ! int ref;
277 ! int base;
279 ! int16_t tag;
280 ! } MMG5_Edge;
281 ! typedef MMG5_Edge * MMG5_pEdge;
282 
283 !
302 ! typedef struct {
303 ! double qual; /*Quality of the triangle*/
304 ! int v[3];
305 ! int ref;
306 ! int base;
307 ! int cc;
309 ! int edg[3];
311 ! int flag;
312 ! int16_t tag[3];
314 ! } MMG5_Tria;
315 ! typedef MMG5_Tria * MMG5_pTria;
316 
317 
318 !
337 ! typedef struct {
338 ! int v[4];
339 ! int ref;
340 ! int base;
341 ! int edg[4];
343 ! int16_t tag[4];
345 ! } MMG5_Quad;
346 ! typedef MMG5_Quad * MMG5_pQuad;
347 
348 
349 !
373 ! typedef struct {
374 ! double qual;
375 ! int v[4];
376 ! int ref;
377 ! int base;
378 ! int mark;
379 ! int xt;
381 ! int flag;
382 ! int16_t tag;
383 ! } MMG5_Tetra;
385 
386 !
391 ! typedef struct {
392 ! int ref[4];
394 ! int edg[6];
396 ! int16_t ftag[4];
398 ! int16_t tag[6];
400 ! char ori;
403 ! } MMG5_xTetra;
405 
406 !
436 ! typedef struct {
437 ! int v[6];
438 ! int ref;
439 ! int base;
440 ! int flag;
441 ! int xpr;
443 ! char tag;
444 ! } MMG5_Prism;
446 
447 !
452 ! typedef struct {
453 ! int ref[5];
455 ! int edg[9];
459 ! int16_t ftag[5];
461 ! int16_t tag[9];
463 ! } MMG5_xPrism;
465 
466 !
471 ! typedef struct {
472 ! char dospl;
473 ! int ref,rin,rex;
474 ! } MMG5_Mat;
475 ! typedef MMG5_Mat * MMG5_pMat;
476 
477 !
482 ! typedef struct {
485 ! int mem,npar,npari;
486 ! int opnbdy;
487 ! int renum;
488 ! int octree;
489 ! int nmat;
490 ! char nreg;
492 ! char parTyp;
495 ! unsigned char optim, optimLES, noinsert, noswap, nomove, nosurf;
497 ! } MMG5_Info;
498 
499 !
504 ! typedef struct {
505 ! int a;
506 ! int b;
507 ! int ref;
508 ! int nxt;
509 ! int16_t tag;
510 ! } MMG5_hgeom;
511 
512 ! typedef struct {
514 ! int siz,max,nxt;
515 ! } MMG5_HGeom;
516 
517 !
523 ! typedef struct {
524 ! long long memMax;
525 ! long long memCur;
526 ! double gap;
527 ! int ver;
528 ! int dim;
529 ! int type;
531 ! int nquad,nprism; /* number of quadrangles and prisms */
532 ! int nsols; /* number of solutions in the solution file (mshmet/int) */
533 ! int nc1;
534 
535 ! int base;
537 ! int mark;
539 ! int xp,xt,xpr;
540 ! int npnil;
541 ! int nenil;
542 ! int nanil;
543 ! int *adja;
547 ! int *adjt;
551 ! int *adjapr;
566 ! char *namein;
567 ! char *nameout;
569 ! } MMG5_Mesh;
570 ! typedef MMG5_Mesh * MMG5_pMesh;
571 
572 !
577 ! typedef struct {
578 ! int ver; /* Version of the solution file */
579 ! int dim; /* Dimension of the solution file*/
580 ! int np; /* Number of points of the solution */
581 ! int npmax; /* Maximum number of points */
582 ! int npi; /* Temporary number of points (internal use only) */
583 ! int size; /* Number of solutions per entity */
584 ! int type; /* Type of the solution (scalar, vectorial of tensorial) */
585 ! double *m;
586 ! double umin,umax;
587 ! char *namein;
588 ! char *nameout;
589 ! } MMG5_Sol;
590 ! typedef MMG5_Sol * MMG5_pSol;
591 
592 #endif
! char tagdel
Definition: libmmgtypesf.h:254
! int xpmax
Definition: libmmgtypesf.h:530
! int size
Definition: libmmgtypesf.h:583
! MMG5_pPoint point
Definition: libmmgtypesf.h:555
! int a
Definition: libmmgtypesf.h:275
! MMG5_pxPoint xpoint
Definition: libmmgtypesf.h:556
! MMG5_pQuad quadra
Definition: libmmgtypesf.h:562
! double max[3]
Definition: libmmgtypesf.h:484
! MMG5_Info info
Definition: libmmgtypesf.h:565
! typedef MMG5_Point * MMG5_pPoint
Definition: libmmgtypesf.h:256
! double * m
Definition: libmmgtypesf.h:585
! typedef MMG5_Prism * MMG5_pPrism
Definition: libmmgtypesf.h:445
! int * adjapr
Definition: libmmgtypesf.h:551
! double dhd
Definition: libmmgtypesf.h:484
! typedef struct @1 MMG5_Point
Definition: libmmgtypes.h:330
! typedef struct @7 MMG5_xTetra
! MMG5_pTria tria
Definition: libmmgtypesf.h:561
! int * adjt
Definition: libmmgtypesf.h:547
! typedef struct @6 MMG5_Tetra
! MMG5_pEdge edge
Definition: libmmgtypesf.h:563
! unsigned char optimLES
Definition: libmmgtypesf.h:495
! int nt
Definition: libmmgtypesf.h:530
! unsigned char optim
Definition: libmmgtypesf.h:495
! double c[3]
Definition: libmmgtypesf.h:244
! int ntmax
Definition: libmmgtypesf.h:530
! typedef struct @15 MMG5_Sol
! int npnil
Definition: libmmgtypesf.h:540
! MMG5_pTetra tetra
Definition: libmmgtypesf.h:557
! char badkal
Definition: libmmgtypesf.h:491
Definition: libmmgtypes.h:526
! int nsols
Definition: libmmgtypesf.h:532
! typedef MMG5_xTetra * MMG5_pxTetra
Definition: libmmgtypesf.h:404
! MMG5_pxPrism xprism
Definition: libmmgtypesf.h:560
! int octree
Definition: libmmgtypesf.h:488
! double qual
Definition: libmmgtypesf.h:303
! typedef struct @11 MMG5_Info
! typedef struct @8 MMG5_Prism
! unsigned char noswap
Definition: libmmgtypesf.h:495
! int nquad
Definition: libmmgtypesf.h:531
! char * nameout
Definition: libmmgtypesf.h:567
! int16_t ftag[4]
Definition: libmmgtypesf.h:396
! typedef MMG5_Tria * MMG5_pTria
Definition: libmmgtypesf.h:315
! int xpr
Definition: libmmgtypesf.h:441
! typedef struct @9 MMG5_xPrism
! int rex
Definition: libmmgtypesf.h:473
! typedef struct @14 MMG5_Mesh
! int type
Definition: libmmgtypesf.h:529
! int xt
Definition: libmmgtypesf.h:379
! typedef MMG5_Quad * MMG5_pQuad
Definition: libmmgtypesf.h:346
! long long memCur
Definition: libmmgtypesf.h:525
! int npi
Definition: libmmgtypesf.h:530
! double hgrad
Definition: libmmgtypesf.h:484
Store input parameters of the run.
Definition: libmmgtypes.h:434
! int flag
Definition: libmmgtypesf.h:250
! int dim
Definition: libmmgtypesf.h:528
! int nc1
Definition: libmmgtypesf.h:533
! int ver
Definition: libmmgtypesf.h:527
! unsigned char noinsert
Definition: libmmgtypesf.h:495
! int npmax
Definition: libmmgtypesf.h:530
! int nenil
Definition: libmmgtypesf.h:541
! MMG5_HGeom htab
Definition: libmmgtypesf.h:564
! double gap
Definition: libmmgtypesf.h:526
! double delta
Definition: libmmgtypesf.h:484
! int nai
Definition: libmmgtypesf.h:530
! char dospl
Definition: libmmgtypesf.h:472
Definition: libmmgtypes.h:295
! char fem
Definition: libmmgtypesf.h:491
! char parTyp
Definition: libmmgtypesf.h:492
! double hausd
Definition: libmmgtypesf.h:232
! typedef struct @2 MMG5_xPoint
! int siz
Definition: libmmgtypesf.h:514
! MMG5_pPar par
Definition: libmmgtypesf.h:483
MMG5_Par * MMG5_pPar
Definition: libmmgtypesf.h:235
Structure to store points of a MMG mesh.
Definition: libmmgtypes.h:205
! double hmin
Definition: libmmgtypesf.h:230
! int xp
Definition: libmmgtypesf.h:247
! int nxt
Definition: libmmgtypesf.h:508
! int opnbdy
Definition: libmmgtypesf.h:486
! char iso
Definition: libmmgtypesf.h:491
Structure to store edges of a MMG mesh.
Definition: libmmgtypes.h:234
! char ddebug
Definition: libmmgtypesf.h:491
! int nanil
Definition: libmmgtypesf.h:542
To store user-defined references in the mesh (useful in LS mode)
Definition: libmmgtypes.h:424
! MMG5_pPrism prism
Definition: libmmgtypesf.h:559
! int16_t tag
Definition: libmmgtypesf.h:252
! typedef MMG5_Mat * MMG5_pMat
Definition: libmmgtypesf.h:475
Structure to store the surface prism of a MMG mesh.
Definition: libmmgtypes.h:406
! int npar
Definition: libmmgtypesf.h:485
! double min[3]
Definition: libmmgtypesf.h:484
! int ref
Definition: libmmgtypesf.h:233
! int nmat
Definition: libmmgtypesf.h:489
! int * adja
Definition: libmmgtypesf.h:543
MMG mesh structure.
Definition: libmmgtypes.h:473
Structure to store surface points of a MMG mesh.
Definition: libmmgtypes.h:224
! typedef struct @13 MMG5_HGeom
! MMG5_pMat mat
Definition: libmmgtypesf.h:496
! typedef MMG5_xPrism * MMG5_pxPrism
Definition: libmmgtypesf.h:464
Structure to store the surface tetrahedra of a MMG mesh.
Definition: libmmgtypes.h:347
! double n2[3]
Definition: libmmgtypesf.h:264
! typedef MMG5_Tetra * MMG5_pTetra
Definition: libmmgtypesf.h:384
! int nti
Definition: libmmgtypesf.h:530
! int tmp
Definition: libmmgtypesf.h:248
! typedef struct @10 MMG5_Mat
To store user-defined references in the mesh (useful in LS mode) !
! double hmax
Definition: libmmgtypesf.h:231
! int np
Definition: libmmgtypesf.h:530
! int rin
Definition: libmmgtypesf.h:473
! typedef struct @12 MMG5_hgeom
! long long memMax
Definition: libmmgtypesf.h:524
! int ne
Definition: libmmgtypesf.h:530
! char ori
Definition: libmmgtypesf.h:400
! char * namein
Definition: libmmgtypesf.h:566
! double n[3]
Definition: libmmgtypesf.h:245
! int mark
Definition: libmmgtypesf.h:378
! typedef MMG5_Edge * MMG5_pEdge
Definition: libmmgtypesf.h:281
! typedef struct @0 MMG5_Par
! unsigned char nomove
Definition: libmmgtypesf.h:495
! char nreg
Definition: libmmgtypesf.h:490
! int b
Definition: libmmgtypesf.h:275
! int renum
Definition: libmmgtypesf.h:487
! MMG5_pxTetra xtetra
Definition: libmmgtypesf.h:558
! double n1[3]
Definition: libmmgtypesf.h:264
! double umax
Definition: libmmgtypesf.h:586
! int namax
Definition: libmmgtypesf.h:530
! int npari
Definition: libmmgtypesf.h:485
! int na
Definition: libmmgtypesf.h:530
Definition: libmmgtypes.h:391
! double ls
Definition: libmmgtypesf.h:484
! double umin
Definition: libmmgtypesf.h:586
Definition: libmmgtypes.h:192
! int v[3]
Definition: libmmgtypesf.h:304
! int xtmax
Definition: libmmgtypesf.h:530
! int nei
Definition: libmmgtypesf.h:530
! int nprism
Definition: libmmgtypesf.h:531
! typedef MMG5_Sol * MMG5_pSol
Definition: libmmgtypesf.h:590
To store geometric edges.
Definition: libmmgtypes.h:455
Definition: libmmgtypes.h:261
! int nemax
Definition: libmmgtypesf.h:530
! typedef struct @4 MMG5_Tria
! int cc
Definition: libmmgtypesf.h:307
! char imprim
Definition: libmmgtypesf.h:491
! char lag
Definition: libmmgtypesf.h:491
! int s
Definition: libmmgtypesf.h:251
! typedef MMG5_xPoint * MMG5_pxPoint
Definition: libmmgtypesf.h:267
! unsigned char nosurf
Definition: libmmgtypesf.h:495
! int base
Definition: libmmgtypesf.h:277
! int mem
Definition: libmmgtypesf.h:485
! double hsiz
Definition: libmmgtypesf.h:484
! char elt
Definition: libmmgtypesf.h:234
! typedef MMG5_Mesh * MMG5_pMesh
Definition: libmmgtypesf.h:570
! typedef struct @3 MMG5_Edge
! typedef struct @5 MMG5_Quad
! MMG5_hgeom * geom
Definition: libmmgtypesf.h:513
! int edg[3]
Definition: libmmgtypesf.h:309
Definition: libmmgtypes.h:463