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