diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
commit | fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch) | |
tree | bdda434976bc09c864f2e4fa6f16ba1952b1e555 /vendor/x11iraf/ximtool/eps.h | |
download | iraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz |
Initial commit
Diffstat (limited to 'vendor/x11iraf/ximtool/eps.h')
-rw-r--r-- | vendor/x11iraf/ximtool/eps.h | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/vendor/x11iraf/ximtool/eps.h b/vendor/x11iraf/ximtool/eps.h new file mode 100644 index 00000000..89427ee1 --- /dev/null +++ b/vendor/x11iraf/ximtool/eps.h @@ -0,0 +1,146 @@ +/* + * EPS.H -- Include definitions for EPS hardcopy routines. + */ + + +/* Handy macro definitions */ + +#define MONO(rd,gn,bl) ((int)(rd*11 + gn*16 + bl*5) >> 5) /*.33R+ .5G+ .17B*/ +#undef MAX +#define MAX(a,b) ((a) > (b) ? (a) : (b)) +#undef MIN +#define MIN(a,b) ((a) < (b) ? (a) : (b)) + + +#define Orientation(ps) ( ps->page.orientation ) +#define Scale(ps) ( ps->page.scale ) +#define MaxScale(ps) ( ps->page.maxscale ) +#define PageType(ps) ( ps->page.page_type ) +#define DoAutoScale(ps) ( ps->page.flags & EPS_AUTOSCALE ) +#define DoAutoRotate(ps) ( ps->page.flags & EPS_AUTOROTATE ) +#define DoMaxAspect(ps) ( ps->page.flags & EPS_MAXASPECT ) + +#define PIX_PER_LINE 72 + +/* Compression options. */ +#define NoCompression 0 /* Don't compress image */ +#define RLECompression 1 /* RLE compression */ +#define LZWCompression 2 /* LZW compression (not implemted) */ +#define JPEGCompression 3 /* JPEG compression (not implemted) */ + +/* Output color classes. */ +#define EPS_GRAYSCALE 0 /* Write a grayscale image */ +#define EPS_PSEUDOCOLOR 1 /* Write a pseudocolor image */ +#define EPS_TRUECOLOR 2 /* Write a RGB image */ + +/* Page option flags. */ +#define EPS_PORTRAIT 0 /* Page orientations */ +#define EPS_LANDSCAPE 1 +#define EPS_AUTOSCALE 0x01 /* Auto scale to fit on page */ +#define EPS_AUTOROTATE 0x02 /* Auto rotate to fit on page */ +#define EPS_MAXASPECT 0x04 /* Increase scale to max aspect */ +#define EPS_DOTITLE 0x10 /* Do title string */ +#define EPS_DOBORDERS 0x20 /* Do image borders */ +#define EPS_DOCOLORBAR 0x40 /* Do colorbar */ + +/* Transformation parameters. */ +#define EPS_UNITARY 0 +#define EPS_LINEAR 1 +#define EPS_LOG 2 + +/* Page layout structure. */ +typedef struct { + int orientation; /* page orioentation */ + float scale; /* image scale factor */ + float maxscale; /* maxaspect image scale factor */ + int dpi; /* dpi resolution */ + int page_type; /* type of paper being used */ + int flags; /* option flags */ +} PSPage, *PSPagePtr; + +/* Colormap structure. */ +typedef struct { + int IsDefault; /* Are we using the default colormap? */ + int ncolors; /* number of colormap colors */ + int min, max; /* image min/max */ + unsigned char r[256]; /* red colormap */ + unsigned char g[256]; /* green colormap */ + unsigned char b[256]; /* blue colormap */ + char *cmap_name; /* colormap name */ +} PSCmap, *PSCmapPtr; + +/* Main EPS structure. */ +typedef struct { + int cols; /* num output columns */ + int rows; /* num output rows */ + int colorClass; /* output color class */ + int compression; /* output compression type */ + int annotate; /* annotate the output image? */ + int llx, lly, urx, ury; /* image coordinate corners */ + float z1, z2; /* zscale transform values */ + int ztype; /* type of transformation */ + float offset, scale; /* brightness/contrast values */ + char *label; /* label string */ + + PSPage page; /* Page layout structure */ + PSCmap cmap; /* Colormap struct */ +} PSImage, *PSImagePtr; + + +/* Page sizes and resolution information. */ +#define EPS_LETTER 0 +#define EPS_LEGAL 1 +#define EPS_A4 2 +#define EPS_B5 3 +#define EPS_BSIZE 4 +#define EPS_4BY5 5 +#define EPS_35MM 6 + +#define PageXdim(ps) ( PageInfo[ps->page.page_type].npixx ) +#define PageYdim(ps) ( PageInfo[ps->page.page_type].npixy ) +#define PageWidth(ps) ( PageInfo[ps->page.page_type].sizex ) +#define PageHeight(ps) ( PageInfo[ps->page.page_type].sizey ) + +/* Page layout definitions. */ +#define X_ANNOT_MARGIN 30 /* margin in pixels for annotation */ +#define Y_ANNOT_MARGIN 60 /* margin in pixels for annotation */ +#define TITLE_OFFSET 20 /* Offset for title string */ +#define AXIS_OOFFSET 7 /* Outer offset for axis */ +#define AXIS_IOFFSET 2 /* Inner offset for axis */ +#define AXIS_OWIDTH 1.5 /* Outer axis width */ +#define AXIS_IWIDTH 1.0 /* Inner axis width */ +#define MAJOR_TICK_SIZE 5 /* Size of major tic mark */ +#define MAJOR_TICK_WIDTH 1.5 /* Width of major tic mark */ +#define MINOR_TICK_SIZE 3 /* Size of major tic mark */ +#define MINOR_TICK_WIDTH 0.5 /* Width of major tic mark */ +#define NTICMARKS 5 /* Number of major tick marks */ + + +typedef struct { + float sizex, sizey; /* page size in inches */ + int npixx, npixy; /* pix resolution at 72 dpi */ +} PSPageInfo; + +static PSPageInfo PageInfo[] = { /* assumes 300 dpi */ + { 8.500, 11.000, /* US NORMAL, aka LETTER */ + 612, 762 + }, + { 8.500, 14.000, /* US LEGAL */ + 612, 1008 + }, + { 8.267, 11.811, /* A4 */ + 595, 850 + }, + { 7.283, 10.630, /* B5 */ + 524, 765 + }, + {11.000, 17.000, /* B-size */ + 762, 1224 + }, + { 3.875, 4.875, /* 4 by 5 */ + 279, 351 + }, + { 0.945, 1.417, /* 35mm (24x36) */ + 68, 102 + } +}; |