6 typedef int avsFileParaTypeInteger;
7 typedef float avsFileParaTypeReal;
11 typedef enum avsFileType {
18 typedef enum avsFileFieldDataType {
19 avsFileFieldDataTypeByte = 0,
20 avsFileFieldDataTypeShort = 1,
21 avsFileFieldDataTypeFloat = 2,
22 avsFileFieldDataTypeInteger = 3,
23 avsFileFieldDataTypeDouble = 4
24 } avsFileFieldDataType;
26 typedef enum avsFileFieldType {
27 avsFileFieldTypeUniform = 0,
28 avsFileFieldTypeRectilinear = 1,
29 avsFileFieldTypeIrregular = 2
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;
53 typedef struct avsFileUCDComponentData {
54 avsFileParaTypeReal* data;
55 } avsFileUCDComponentData;
57 typedef struct avsFileUCDComponent {
60 avsFileParaTypeInteger nElement;
61 } avsFileUCDComponent;
63 typedef struct avsFileUCDNode {
64 avsFileParaTypeInteger ID;
65 avsFileParaTypeReal x;
66 avsFileParaTypeReal y;
67 avsFileParaTypeReal z;
68 avsFileUCDComponentData* Component;
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
86 typedef struct avsFileUCDCell {
87 avsFileParaTypeInteger ID;
88 avsFileParaTypeInteger MaterialID;
89 avsFileUCDCellType Type;
90 avsFileUCDNode** Node;
91 avsFileUCDComponentData* Component;
94 typedef struct avsFileUCD {
96 avsFileParaTypeInteger nNode;
98 avsFileParaTypeInteger nNodeComponent;
99 avsFileUCDComponent* NodeComponent;
102 avsFileParaTypeInteger nCell;
103 avsFileUCDCell* Cell;
104 avsFileParaTypeInteger nCellComponent;
105 avsFileUCDComponent* CellComponent;
108 avsFileParaTypeInteger nModel;
111 typedef struct avsFile {
112 avsFileType FileType;
121 /* prototype begin */
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);
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);
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,
147 avsFileUCDLineTypeCellSet(avsFileUCD* avs,
148 avsFileParaTypeInteger CellID,
149 avsFileParaTypeInteger MaterialID,
150 avsFileUCDNode* NodeID0,
151 avsFileUCDNode* NodeID1);
153 avsFileUCDCellDataSet(avsFileUCD* avs,
154 avsFileParaTypeInteger CellID,
155 avsFileParaTypeInteger indexComponent,
156 avsFileParaTypeInteger indexElement,
164 #endif /* AVS_FILE_H */