OSDN Git Service

Merge branch 'master' of git.sourceforge.jp:/gitroot/eos/base
[eos/base.git] / src / Objects / DataManip / dmFile / doc / dmFile.html
1 <HR>
2 <A NAME="Information">
3 <H2>Information from source codes</H2>
4 </A>
5 <PRE>
6 ../src/dmFileInfo.c:
7
8 ../src/dmFileInit.c:
9
10 ../src/dmFileRead.c:
11
12 ../src/dmFileUtil.c:
13
14 ../src/ldm2mrc.c:
15 </PRE>
16 <HR>
17 <A NAME="include">
18 <H2>dmFile.h</H2>
19 </A>
20 <PRE>
21 /*
22 # dmFile.h : $Revision$  
23 # $Date$ 
24 # Created by $Author$
25 # Usage : dmFile.h 
26 # Attention
27 #   $Loccker$
28 #       $State$ 
29 #
30 */
31 /* $Log$ */
32 #ifndef DMFILE_H 
33 #define DMFILE_H 
34
35 #include <stdio.h>
36 #include "mrcImage.h"
37
38 /* constant begin */
39
40
41 /* constant end */
42
43 /* struct begin */
44
45 typedef __int64_t dmFileInteger8; 
46 typedef __int32_t dmFileInteger4; 
47 typedef __int16_t dmFileInteger2; 
48 typedef __int8_t  dmFileInteger1; 
49
50 typedef enum dmFileTagDirType {
51         dmFileTagDirTypeFileEnd = 0x00,
52         dmFileTagDirTypeTagDir  = 0x14, 
53         dmFileTagDirTypeTag     = 0x15
54 } dmFileTagDirType;
55
56 static char* __dmFileTagDirTypeChar[] = {
57         "FileEnd", "", "", "", "", "", "", "", 
58         "", "", "", "", "", "", "", "",
59         "", "", "", "", "TagDir", "Tag"
60 };
61
62 typedef enum dmFileTagDataType {
63         dmFileTagDataTypeInt2   =2,
64         dmFileTagDataTypeInt4   =3,
65         dmFileTagDataTypeUInt2  =4,
66         dmFileTagDataTypeUInt4  =5,
67         dmFileTagDataTypeReal4  =6,
68         dmFileTagDataTypeReal8  =7,
69         dmFileTagDataTypeBool1  =8,
70         dmFileTagDataTypeChar1  =9,
71         dmFileTagDataTypeInt1   =0xa,
72         dmFileTagDataTypeInt8   =0xb,
73         dmFileTagDataTypeUInt8  =0xc,
74         dmFileTagDataTypeStruct =0xf,
75         dmFileTagDataTypeString =0x12,
76         dmFileTagDataTypeArray  =0x14,
77         dmFileTagDataTypeTags   =0x15,
78 } dmFileTagDataType;
79
80 typedef enum dmFileImageDataType {
81         dmFileImageDataTypeInt2     = 1, 
82         dmFileImageDataTypeReal4    = 2, 
83         dmFileImageDataTypeComplex8 = 3, 
84         dmFileImageDataTypeUnknown  = 4, 
85         dmFileImageDataTypePackedComplex  = 5, 
86         dmFileImageDataTypeUInt1    = 6, 
87         dmFileImageDataTypeInt4     = 7, 
88         dmFileImageDataTypeRGBInt4  = 8, 
89         dmFileImageDataTypeInt1     = 9, 
90         dmFileImageDataTypeUInt2    = 10, 
91         dmFileImageDataTypeUInt4    = 11, 
92         dmFileImageDataTypeReal8    = 12, 
93         dmFileImageDataTypeComplex16= 13, 
94         dmFileImageDataTypeBool1    = 14,
95         dmFileImageDataTypeIRGInt4Thumnail = 23 
96 } dmFileImageDataType;
97
98 static size_t __dmFileImageDataTypeSize[] = {
99         0, 2, 3, 8, 0,  4, 1, 4, 
100         4, 1, 2, 4, 6, 16, 1, 0,
101         0, 0, 0, 0, 0,  0, 0, 4 
102 };
103
104 static size_t __dmFileTagDataTypeSize[] = {
105  0, 0, 2, 4, 2, 4, 4, 8, 
106  1, 1, 1, 8, 8, 0, 0, 0, 
107  0, 0, 0, 0, 0, 0, 0, 0
108 }; 
109
110 /*
111 static char* __dmFileTagDataTypeFormat[] = {
112     0,    0, "%d",   "%d",   "%u", "%u", "%f", "%f", 
113  "%d", "%c", "%d", "%lld", "%llu",     0,   0,    0, 
114     0,    0,    0,      0,      0,     0,   0,    0
115 }; 
116 */
117
118 static char* __dmFileTagDataTypeFormat[] = {
119     0,    0,  "%#0x", "%#0x",   "%#0X", "%#0X", "%f", "%f", 
120  "%#0x", "%c", "%#0x", "%#0x", "%#0llX",     0,    0,    0, 
121     0,    0,      0,     0,       0,     0,    0,    0
122 }; 
123
124
125 static char* __dmFileTagDataTypeChar[] = {
126      "",      "", "Int2",   "Int4", "UInt2", "UInt4", "Real4",  "Real8", 
127 "Bool1", "Char1", "Int1",   "Int8", "UInt8",      "",      "", "Struct", 
128      "",      "", "String",     "", "Array",  "Tags",      "",       ""
129 }; 
130
131
132
133 // Header
134 typedef struct dmFile3Header {
135         dmFileInteger4 version;
136         dmFileInteger4 rootLength;
137         dmFileInteger4 byteOrder;
138 } __attribute__((__packed__)) dmFile3Header;
139
140 typedef struct dmFile4Header {
141         dmFileInteger4 version;
142         dmFileInteger8 rootLength;
143         dmFileInteger4 byteOrder;
144 } __attribute__((__packed__)) dmFile4Header;
145
146 typedef struct dmFile3TagDirectory dmFile3TagDirectory;
147 typedef struct dmFile4TagDirectory dmFile4TagDirectory; 
148
149 // Tag 
150 typedef struct dmFile3Tag {
151         dmFileInteger1 tagID;
152         dmFileInteger2 tagNameLength; // Bytes
153         char*          tagName;
154         // Tag
155         char           seperator[4];
156         dmFileInteger4 ninfo; 
157         dmFileInteger4* info; 
158         long            pValue; // Offset       
159         void*           value;  // Array or value 
160         void**          value2; // Struct
161         void**          value3; // Array of Struct
162         // TagDirectory 
163         dmFile3TagDirectory* tagDir;
164 } dmFile3Tag;
165
166 typedef struct dmFile4Tag {
167         dmFileInteger1 tagID;
168         dmFileInteger2 tagNameLength; // Bytes
169         char*          tagName;
170         dmFileInteger8 tagLength;
171         // Tag
172         char           seperator[4];
173         dmFileInteger8 ninfo; 
174         dmFileInteger8* info; 
175         long            pValue;
176         void*           value;  // Array or value 
177         void**          value2; // Struct
178         void**          value3; // Array of Struct
179         // TagDirectory
180         dmFile4TagDirectory* tagDir;
181 } dmFile4Tag;
182
183 // Root Tag Directory
184 struct dmFile3TagDirectory {
185         dmFileInteger1 sortf;
186         dmFileInteger1 closef;
187         dmFileInteger4 numberOfTags;
188         dmFile3Tag* Tags;
189 } ;  
190
191 struct dmFile4TagDirectory {
192         dmFileInteger1 sortf;
193         dmFileInteger1 closef;
194         dmFileInteger8 numberOfTags;
195         dmFile4Tag* Tags;
196 } ; 
197
198 typedef struct dmFile {
199         // Header
200         dmFileInteger4 version;
201         dmFile3Header Header3;
202         dmFile4Header Header4;
203         // Root Tag
204         dmFile3TagDirectory RootTag3;
205         dmFile4TagDirectory RootTag4;
206         // Tail
207         dmFileInteger8 Tail;
208
209         // 
210         mrcImage thumnail;
211         mrcImage image;
212 } dmFile;
213
214 /* struct end */
215
216 #ifdef __cplusplus
217 extern "C" {
218 #endif
219
220 /* prototype begin */
221
222 // in dfFileInfo.c
223 extern void dmFileInfo(FILE* fpt, dmFile dm, int mode);
224 extern void dmFileHeaderInfo(FILE* fpt, dmFile dm, int mode);
225 extern void dmFile3TagDirectoryInfo(FILE* fpt, dmFile3TagDirectory tagDir, int layer, int mode);
226 extern void dmFile3TagInfo(FILE* fpt, dmFile3Tag tagr, int layer, int mode);
227 extern void dmFile4TagDirectoryInfo(FILE* fpt, dmFile4TagDirectory tagDir, int layer, int mode);
228 extern void dmFile4TagInfo(FILE* fpt, dmFile4Tag tag, int layer, int mode);
229
230 // in dmFileRead.c
231 extern void dmFileRead(FILE* fpt, dmFile* dm, char* message, int mode);
232 // DM Header and End Read: check file format
233 extern void dmFileHeaderTailRead(FILE* fpt, dmFile* dm, char* message, int mode);
234 // DM3
235 // Header 
236 extern void dmFile3HeaderRead(FILE* fpt, dmFile* dm, char* message, int mode);
237 //
238 extern void dmFile3TagDirectoryHeaderRead(FILE* fpt, dmFile3TagDirectory* dmRoot, char* message, int mode);
239 extern void dmFile3TagHeaderRead(FILE* fpt, dmFile3Tag* dmTag, char* message, int mode);
240 extern void dmFile3TagRead(FILE* fpt, dmFile3Tag* dmTag, char* message, int mode);
241 extern void dmFile3TagDirectoryRead(FILE* fpt, dmFile3TagDirectory* dmTagDir, char* message, int mode);
242
243 // DM4
244 // Header
245 extern void dmFile4HeaderRead(FILE* fpt, dmFile* dm, char* message, int mode);
246 //  
247 extern void dmFile4TagDirectoryHeaderRead(FILE* fpt, dmFile4TagDirectory* dmRoot, char* message, int mode);
248 extern void dmFile4TagHeaderRead(FILE* fpt, dmFile4Tag* dmTag, char* message, int mode);
249 extern void dmFile4TagRead(FILE* fpt, dmFile4Tag* dmTag, char* message, int mode);
250 extern void dmFile4TagDirectoryRead(FILE* fpt, dmFile4TagDirectory* dmTagDir, char* message, int mode);
251
252 // in dmFileUtil.c
253 extern void dmFileValuePrint(FILE* fpt, void* value, dmFileTagDataType valueType, int n); 
254
255 // in dm2mrc.c 
256 extern void ldm2mrc(mrcImage* mrc, dmFile* dm, int mode);
257 extern void dmFile3TagDirectory2mrc(dmFile* fpt, dmFile3TagDirectory tagDir, int layer, int mode);
258 extern void dmFile4TagDirectory2mrc(dmFile* fpt, dmFile4TagDirectory tagDir, int layer, int mode);
259
260 // in dmFileInit.c
261 extern void dmFileInit(dmFile* dm, int mode);
262
263 /* prototype end */
264
265 #ifdef __cplusplus
266 };
267 #endif
268
269 #endif  /* DMFILE_H */ 
270 </PRE>