Salome HOME
fix #7051 libmesh5.c/h DriverGMF_Read.cxx/hxx
[modules/smesh.git] / src / DriverGMF / libmesh5.h
1
2
3 /*----------------------------------------------------------*/
4 /*                                                                                                                      */
5 /*                                              LIBMESH V 5.46                                          */
6 /*                                                                                                                      */
7 /*----------------------------------------------------------*/
8 /*                                                                                                                      */
9 /*      Description:            handle .meshb file format I/O           */
10 /*      Author:                         Loic MARECHAL                                           */
11 /*      Creation date:          feb 16 2007                                                     */
12 /*      Last modification:      dec 09 2011                                                     */
13 /*                                                                                                                      */
14 /*----------------------------------------------------------*/
15
16
17 /*----------------------------------------------------------*/
18 /* Defines                                                                                                      */
19 /*----------------------------------------------------------*/
20
21 #include "SMESH_DriverGMF.hxx"
22
23 #define GmfStrSiz 1024
24 #define GmfMaxTyp 1000
25 #define GmfMaxKwd 81
26 #define GmfMshVer 1
27 #define GmfRead 1
28 #define GmfWrite 2
29 #define GmfSca 1
30 #define GmfVec 2
31 #define GmfSymMat 3
32 #define GmfMat 4
33 #define GmfFloat 1
34 #define GmfDouble 2
35
36 // see MeshGems/Docs/meshgems_formats_description.pdf
37 enum GmfKwdCod
38 {
39         GmfReserved1, \
40         GmfVersionFormatted, \
41         GmfReserved2, \
42         GmfDimension, \
43         GmfVertices, \
44         GmfEdges, \
45         GmfTriangles, \
46         GmfQuadrilaterals, \
47         GmfTetrahedra, \
48         GmfPrisms, \
49         GmfHexahedra, \
50         GmfIterationsAll, \
51         GmfTimesAll, \
52         GmfCorners, \
53         GmfRidges, \
54         GmfRequiredVertices, \
55         GmfRequiredEdges, \
56         GmfRequiredTriangles, \
57         GmfRequiredQuadrilaterals, \
58         GmfTangentAtEdgeVertices, \
59         GmfNormalAtVertices, \
60         GmfNormalAtTriangleVertices, \
61         GmfNormalAtQuadrilateralVertices, \
62         GmfAngleOfCornerBound, \
63         GmfTrianglesP2, \
64         GmfEdgesP2, \
65         GmfSolAtPyramids, \
66         GmfQuadrilateralsQ2, \
67         GmfISolAtPyramids, \
68         GmfSubDomainFromGeom, \
69         GmfTetrahedraP2, \
70         GmfFault_NearTri, \
71         GmfFault_Inter, \
72         GmfHexahedraQ2, \
73         GmfExtraVerticesAtEdges, \
74         GmfExtraVerticesAtTriangles, \
75         GmfExtraVerticesAtQuadrilaterals, \
76         GmfExtraVerticesAtTetrahedra, \
77         GmfExtraVerticesAtPrisms, \
78         GmfExtraVerticesAtHexahedra, \
79         GmfVerticesOnGeometricVertices, \
80         GmfVerticesOnGeometricEdges, \
81         GmfVerticesOnGeometricTriangles, \
82         GmfVerticesOnGeometricQuadrilaterals, \
83         GmfEdgesOnGeometricEdges, \
84         GmfFault_FreeEdge, \
85         GmfPolyhedra, \
86         GmfPolygons, \
87         GmfFault_Overlap, \
88         GmfPyramids, \
89         GmfBoundingBox, \
90         GmfBody, \
91         GmfPrivateTable, \
92         GmfFault_BadShape, \
93         GmfEnd, \
94         GmfTrianglesOnGeometricTriangles, \
95         GmfTrianglesOnGeometricQuadrilaterals, \
96         GmfQuadrilateralsOnGeometricTriangles, \
97         GmfQuadrilateralsOnGeometricQuadrilaterals, \
98         GmfTangents, \
99         GmfNormals, \
100         GmfTangentAtVertices, \
101         GmfSolAtVertices, \
102         GmfSolAtEdges, \
103         GmfSolAtTriangles, \
104         GmfSolAtQuadrilaterals, \
105         GmfSolAtTetrahedra, \
106         GmfSolAtPrisms, \
107         GmfSolAtHexahedra, \
108         GmfDSolAtVertices, \
109         GmfISolAtVertices, \
110         GmfISolAtEdges, \
111         GmfISolAtTriangles, \
112         GmfISolAtQuadrilaterals, \
113         GmfISolAtTetrahedra, \
114         GmfISolAtPrisms, \
115         GmfISolAtHexahedra, \
116         GmfIterations, \
117         GmfTime, \
118         GmfFault_SmallTri, \
119         GmfCoarseHexahedra, \
120         GmfFault_MultipleEdge
121 };
122
123
124 /*----------------------------------------------------------*/
125 /* External procedures                                                                          */
126 /*----------------------------------------------------------*/
127
128 MESHDriverGMF_EXPORT extern int GmfOpenMesh(const char *, int, ...);
129 MESHDriverGMF_EXPORT extern int GmfCloseMesh(int);
130 MESHDriverGMF_EXPORT extern int GmfStatKwd(int, int, ...);
131 MESHDriverGMF_EXPORT extern int GmfGotoKwd(int, int);
132 MESHDriverGMF_EXPORT extern int GmfSetKwd(int, int, ...);
133 MESHDriverGMF_EXPORT extern void GmfGetLin(int, int, ...);
134 MESHDriverGMF_EXPORT extern void GmfSetLin(int, int, ...);
135
136
137 /*----------------------------------------------------------*/
138 /* Fortran 77 API                                                                                       */
139 /*----------------------------------------------------------*/
140
141 #if defined(F77_NO_UNDER_SCORE)
142 #define call(x) x
143 #else
144 #define call(x) x ## _
145 #endif
146
147
148 /*----------------------------------------------------------*/
149 /* Transmesh private API                                                                        */
150 /*----------------------------------------------------------*/
151
152 #ifdef TRANSMESH
153
154 MESHDriverGMF_EXPORT extern char *GmfKwdFmt[ GmfMaxKwd + 1 ][4];
155 MESHDriverGMF_EXPORT extern int GmfCpyLin(int, int, int);
156
157 #endif