OSDN Git Service

Fixed conflict
[eos/hostdependX86LINUX64.git] / include / avsFile.h
1 #ifndef AVS_FILE_H
2 #define AVS_FILE_H
3 #include <stdio.h>
4
5 /* struct begin */
6 typedef int avsFileParaTypeInteger;
7 typedef float avsFileParaTypeReal;
8 /* struct end */
9
10 /* constant begin */
11 typedef enum avsFileType {
12         avsFileTypeField=0,
13         avsFileTypeUCD=1
14 } avsFileType;
15 /*
16         Field Format
17 */
18 typedef enum avsFileFieldDataType {
19         avsFileFieldDataTypeByte    = 0,
20         avsFileFieldDataTypeShort   = 1,
21         avsFileFieldDataTypeFloat   = 2,
22         avsFileFieldDataTypeInteger = 3,
23         avsFileFieldDataTypeDouble  = 4
24 } avsFileFieldDataType;
25
26 typedef enum avsFileFieldType {
27         avsFileFieldTypeUniform     = 0,
28         avsFileFieldTypeRectilinear = 1,
29         avsFileFieldTypeIrregular   = 2
30 } avsFileFieldType;
31 /* constant end */
32
33 /* struct begin */
34 typedef struct avsFileField {
35         avsFileParaTypeInteger ndim;    
36         avsFileParaTypeInteger dim1;    
37         avsFileParaTypeInteger dim2;    
38         avsFileParaTypeInteger dim3;    
39         avsFileParaTypeInteger nspace;
40         avsFileParaTypeInteger veclen;
41         avsFileFieldDataType   dataType;
42         avsFileFieldType       type;
43         char**                 Label;
44         void*                  Image;
45         float**                Coord;
46 } avsFileField;
47 /* struct end */
48
49 /*
50         UCD Format
51 */
52 /* struct begin */
53 typedef struct avsFileUCDComponentData {
54         avsFileParaTypeReal* data;
55 } avsFileUCDComponentData;
56
57 typedef struct avsFileUCDComponent {
58         char* Label;
59         char* Unit;
60         avsFileParaTypeInteger nElement;
61 } avsFileUCDComponent;
62
63 typedef struct avsFileUCDNode {
64         avsFileParaTypeInteger   ID;
65         avsFileParaTypeReal      x;
66         avsFileParaTypeReal      y;
67         avsFileParaTypeReal      z;
68         avsFileUCDComponentData* Component;
69 } avsFileUCDNode;
70 /* struct end */
71
72 /* constant begin */
73 typedef enum avsFileUCDCellType {
74         avsFileUCDCellTypePoint         =0,
75         avsFileUCDCellTypeLine                  =1,
76         avsFileUCDCellTypeTriangle              =2,
77         avsFileUCDCellTypeQuadrilateral =3,
78         avsFileUCDCellTypeTetrahedron   =4,
79         avsFileUCDCellTypePyramid               =5,
80         avsFileUCDCellTypePrism                 =6,
81         avsFileUCDCellTypeHexahedron    =7
82 } avsFileUCDCellType;
83 /* constant end */
84
85 /* struct begin */
86 typedef struct avsFileUCDCell {
87         avsFileParaTypeInteger ID;
88         avsFileParaTypeInteger MaterialID;
89         avsFileUCDCellType     Type;
90         avsFileUCDNode**       Node;
91         avsFileUCDComponentData* Component;
92 } avsFileUCDCell;
93
94 typedef struct avsFileUCD {
95         /* Node */
96         avsFileParaTypeInteger nNode;
97         avsFileUCDNode*        Node;
98         avsFileParaTypeInteger nNodeComponent;
99         avsFileUCDComponent*   NodeComponent;
100
101         /* Cell */
102         avsFileParaTypeInteger nCell;
103         avsFileUCDCell*        Cell;
104         avsFileParaTypeInteger nCellComponent;
105         avsFileUCDComponent*   CellComponent;
106
107         /* Model */
108         avsFileParaTypeInteger nModel;
109 } avsFileUCD;
110                 
111 typedef struct avsFile {
112     avsFileType FileType;
113         avsFileField field;
114         avsFileUCD   UCD;
115 } avsFile;
116 /* constant end */
117
118 #ifdef __cplusplus
119 extern "C" {
120 #endif
121 /* prototype begin */
122 /* avsFileInit.c */
123 extern void avsFileInit(avsFile* avs, long mode);
124 extern void avsFileFieldInit(avsFileField* avs, long mode);
125 extern void avsFileUCDInit(avsFileUCD* avs, long mode);
126 extern void avsFileUCDGlobalInit(avsFileUCD* avs, long mode);
127 extern void avsFileUCDNodeComponentInit(avsFileUCD* avs, int ID, int nElement, char* Label, char* Unit, long mode);
128 extern void avsFileUCDCellComponentInit(avsFileUCD* avs, int ID, int nElement, char* Label, char* Unit, long mode);
129
130 /* avsFileWrite.c */
131 extern void avsFileWrite(avsFile* avs, FILE* fpt, long mode);
132 extern void avsFileUCDWrite(avsFileUCD* avs, FILE* fpt, long mode);
133 extern void avsFileFieldWrite(avsFileField* avs, FILE* fpt, long mode);
134
135 /* avsFileSet.c */
136 extern void avsFileUCDNodeSet(avsFileUCD* avs, 
137                   avsFileParaTypeInteger NodeID, 
138                   avsFileParaTypeReal x, 
139                   avsFileParaTypeReal y, 
140                   avsFileParaTypeReal z);
141 extern void avsFileUCDNodeDataSet(avsFileUCD* avs, 
142                       avsFileParaTypeInteger NodeID, 
143                       avsFileParaTypeInteger indexComponent,
144                       avsFileParaTypeInteger indexElement, 
145                       double data);
146 extern void
147 avsFileUCDLineTypeCellSet(avsFileUCD* avs, 
148                   avsFileParaTypeInteger CellID, 
149                   avsFileParaTypeInteger MaterialID,
150                   avsFileUCDNode* NodeID0,
151                   avsFileUCDNode* NodeID1);
152 extern void
153 avsFileUCDCellDataSet(avsFileUCD* avs, 
154                       avsFileParaTypeInteger CellID, 
155                       avsFileParaTypeInteger indexComponent,
156                       avsFileParaTypeInteger indexElement, 
157                       double data);
158
159 /* prototype end */
160
161 #ifdef __cplusplus
162 };
163 #endif
164 #endif /* AVS_FILE_H */