Salome HOME
#18963 Minimize compiler warnings
[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 #ifdef WIN32
22  #if defined MESHDriverGMF_EXPORTS || defined MeshDriverGMF_EXPORTS
23   #define MESHDriverGMF_EXPORT __declspec( dllexport )
24  #else
25   #define MESHDriverGMF_EXPORT __declspec( dllimport )
26  #endif
27 #else
28  #define MESHDriverGMF_EXPORT
29 #endif
30
31 #define GmfStrSiz 1024
32 #define GmfMaxTyp 1000
33 #define GmfMaxKwd 81
34 #define GmfMshVer 1
35 #define GmfRead 1
36 #define GmfWrite 2
37 #define GmfSca 1
38 #define GmfVec 2
39 #define GmfSymMat 3
40 #define GmfMat 4
41 #define GmfFloat 1
42 #define GmfDouble 2
43
44 /* see MeshGems/Docs/meshgems_formats_description.pdf */
45 enum GmfKwdCod
46 {
47         GmfReserved1, \
48         GmfVersionFormatted, \
49         GmfReserved2, \
50         GmfDimension, \
51         GmfVertices, \
52         GmfEdges, \
53         GmfTriangles, \
54         GmfQuadrilaterals, \
55         GmfTetrahedra, \
56         GmfPrisms, \
57         GmfHexahedra, \
58         GmfIterationsAll, \
59         GmfTimesAll, \
60         GmfCorners, \
61         GmfRidges, \
62         GmfRequiredVertices, \
63         GmfRequiredEdges, \
64         GmfRequiredTriangles, \
65         GmfRequiredQuadrilaterals, \
66         GmfTangentAtEdgeVertices, \
67         GmfNormalAtVertices, \
68         GmfNormalAtTriangleVertices, \
69         GmfNormalAtQuadrilateralVertices, \
70         GmfAngleOfCornerBound, \
71         GmfTrianglesP2, \
72         GmfEdgesP2, \
73         GmfSolAtPyramids, \
74         GmfQuadrilateralsQ2, \
75         GmfISolAtPyramids, \
76         GmfSubDomainFromGeom, \
77         GmfTetrahedraP2, \
78         GmfFault_NearTri, \
79         GmfFault_Inter, \
80         GmfHexahedraQ2, \
81         GmfExtraVerticesAtEdges, \
82         GmfExtraVerticesAtTriangles, \
83         GmfExtraVerticesAtQuadrilaterals, \
84         GmfExtraVerticesAtTetrahedra, \
85         GmfExtraVerticesAtPrisms, \
86         GmfExtraVerticesAtHexahedra, \
87         GmfVerticesOnGeometricVertices, \
88         GmfVerticesOnGeometricEdges, \
89         GmfVerticesOnGeometricTriangles, \
90         GmfVerticesOnGeometricQuadrilaterals, \
91         GmfEdgesOnGeometricEdges, \
92         GmfFault_FreeEdge, \
93         GmfPolyhedra, \
94         GmfPolygons, \
95         GmfFault_Overlap, \
96         GmfPyramids, \
97         GmfBoundingBox, \
98         GmfBody, \
99         GmfPrivateTable, \
100         GmfFault_BadShape, \
101         GmfEnd, \
102         GmfTrianglesOnGeometricTriangles, \
103         GmfTrianglesOnGeometricQuadrilaterals, \
104         GmfQuadrilateralsOnGeometricTriangles, \
105         GmfQuadrilateralsOnGeometricQuadrilaterals, \
106         GmfTangents, \
107         GmfNormals, \
108         GmfTangentAtVertices, \
109         GmfSolAtVertices, \
110         GmfSolAtEdges, \
111         GmfSolAtTriangles, \
112         GmfSolAtQuadrilaterals, \
113         GmfSolAtTetrahedra, \
114         GmfSolAtPrisms, \
115         GmfSolAtHexahedra, \
116         GmfDSolAtVertices, \
117         GmfISolAtVertices, \
118         GmfISolAtEdges, \
119         GmfISolAtTriangles, \
120         GmfISolAtQuadrilaterals, \
121         GmfISolAtTetrahedra, \
122         GmfISolAtPrisms, \
123         GmfISolAtHexahedra, \
124         GmfIterations, \
125         GmfTime, \
126         GmfFault_SmallTri, \
127         GmfCoarseHexahedra, \
128         GmfFault_MultipleEdge
129 };
130
131
132 /*----------------------------------------------------------*/
133 /* External procedures                                                                          */
134 /*----------------------------------------------------------*/
135
136 MESHDriverGMF_EXPORT extern int GmfOpenMesh(const char *, int, ...);
137 MESHDriverGMF_EXPORT extern int GmfCloseMesh(int);
138 MESHDriverGMF_EXPORT extern int GmfStatKwd(int, int, ...);
139 MESHDriverGMF_EXPORT extern int GmfGotoKwd(int, int);
140 MESHDriverGMF_EXPORT extern int GmfSetKwd(int, int, ...);
141 MESHDriverGMF_EXPORT extern void GmfGetLin(int, int, ...);
142 MESHDriverGMF_EXPORT extern void GmfSetLin(int, int, ...);
143
144
145 /*----------------------------------------------------------*/
146 /* Fortran 77 API                                                                                       */
147 /*----------------------------------------------------------*/
148
149 #if defined(F77_NO_UNDER_SCORE)
150 #define call(x) x
151 #else
152 #define call(x) x ## _
153 #endif
154
155
156 /*----------------------------------------------------------*/
157 /* Transmesh private API                                                                        */
158 /*----------------------------------------------------------*/
159
160 #ifdef TRANSMESH
161
162 MESHDriverGMF_EXPORT extern char *GmfKwdFmt[ GmfMaxKwd + 1 ][4];
163 MESHDriverGMF_EXPORT extern int GmfCpyLin(int, int, int);
164
165 #endif