OSDN Git Service

Please enter the commit message for your changes. Lines starting
[eos/base.git] / include / IMAGIC.h
1 #ifndef IMAGIC_H
2 #define IMAGIC_H
3
4 typedef char  ImagicParaTypeChar;
5 typedef int   ImagicParaTypeInteger;
6 typedef float ImagicParaTypeReal;
7 #define IMAGIC_HEADER  (1024)
8 #define IMAGIC_HEADER4 (256)
9
10 typedef struct _ImagicHeader {
11         ImagicParaTypeInteger IMN;              //   1, Image Location Number (1, 2, 3 ...)
12         ImagicParaTypeInteger IFOL;     //   2, Number of Images Following (0, 1, ...) only of importance in the first location
13         ImagicParaTypeInteger IERROR;   //   3, Error code for this image during IMAGIC-5 run
14         ImagicParaTypeInteger NHFR;     //   4, Number of Header Records per image (=1 current) 
15         ImagicParaTypeInteger NMONTH;   //   5, creation month
16         ImagicParaTypeInteger NDAY;     //   6, creation day 
17         ImagicParaTypeInteger NYEAR;    //   7, creation year 
18         ImagicParaTypeInteger NHOUR;    //   8, creation hour 
19         ImagicParaTypeInteger NMINUT;   //   9, creation minute 
20         ImagicParaTypeInteger NSEC;     //  10, creation second 
21         ImagicParaTypeInteger NPIX2;    //  11, image size in BYTES as seen from the program IDAT1(13)*IDAT1(89)
22         ImagicParaTypeInteger NPIXEL;   //  12, total number of image elements
23         ImagicParaTypeInteger IXLP;     //  13, number of lines per image (for 1D data IYLP1=1) : x-size 
24         ImagicParaTypeInteger IYLP;     //  14, number of pixels per line                       : y-size
25         ImagicParaTypeChar    TYPE[4];  //  15, 4 characters determining the image type: 
26                                                                         //              REAL(float),INTG(short),PACK(byte),COMP(2float),RECO(complex with 0 in imaginary)
27         ImagicParaTypeInteger IXOLD;    //      16, top left X co-ordinate before CUT-IMAGE boxing
28         ImagicParaTypeInteger IYOLD;    //      17, top left Y co-ordinate before CUT-IMAGE boxing
29         ImagicParaTypeReal    AVDENS;   //      18, average density in image 
30         ImagicParaTypeReal    SIGMA;    //      19, standard deviation of densities
31         ImagicParaTypeReal    VARIAN;   //      20, variance of densities
32         ImagicParaTypeReal    OLDAVD;   //      21, old average density of this image
33         ImagicParaTypeReal    DENSMAX;  //      22, highest density in image
34         ImagicParaTypeReal    DENSMIN;  //      23, minimal density in image
35         ImagicParaTypeInteger COMPLEX;  //      24, label indicating that data are always complex 
36         ImagicParaTypeReal    CXLENGTH; //      25, cell dimension in Angstr. MRC(12) 
37         ImagicParaTypeReal    CYLENGTH; //      26, cell dimension in Angstr. MRC(11)
38         ImagicParaTypeReal    CZLENGTH; //      27, cell dimension in Angstr. MRC(13)
39         ImagicParaTypeReal    CALPHA;   //      28, cell angle alpha. MRC(14)
40         ImagicParaTypeReal    CBETA;    //      29, cell angle beta.  MRC(15)
41         ImagicParaTypeChar    NAME[80]; //      30-49, coded NAME/TITLE of the image  
42         ImagicParaTypeReal    CGAMMA;   //      50, cell angle gamma.  MRC(16)
43         ImagicParaTypeInteger MAPC;     //      51, axis corresponding to columns. MRC(17) (1,2,3 for X, Y, Z)
44         ImagicParaTypeInteger MAPR;     //      52, axis corresponding to rows.    MRC(18) (1,2,3 for X, Y, Z)  
45         ImagicParaTypeInteger MAPS;     //      53, axis corresponding to section. MRC(19) (1,2,3 for X, Y, Z)  
46         ImagicParaTypeInteger ISPG;     //      54, space group MRC(23)
47
48         ImagicParaTypeInteger NXSTART;  //      55, number of 1st column in map  MRC(6)
49         ImagicParaTypeInteger NYSTART;  //      56, number of 1st row in map     MRC(5)
50         ImagicParaTypeInteger NZSTART;  //      57, number of 1st section in map MRC(7)
51
52         ImagicParaTypeInteger NXINTV;   //      58, number of intervals along X MRC(9)
53         ImagicParaTypeInteger NYINTV;   //      59, number of intervals along Y MRC(8)
54         ImagicParaTypeInteger NZINTV;   //      60, number of intervals along Z MRC(10)
55
56
57
58
59 } ImagicHeader;
60
61 typedef union ImagicHeader {
62         unsigned char All[IMAGIC_HEADER];
63         IDAT1   IDAT1[IMAGIC_HEADER4];  
64         DAT1    DAT1[IMAGIC_HEADER4];   
65         ImagicHeader Header;
66 } ImagicHeader;
67
68 typedef struct Imagic {
69         
70 } IMAGIC;
71
72 #endif