aboutsummaryrefslogtreecommitdiff
path: root/vendor/x11iraf/ximtool/eps.h
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /vendor/x11iraf/ximtool/eps.h
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'vendor/x11iraf/ximtool/eps.h')
-rw-r--r--vendor/x11iraf/ximtool/eps.h146
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
+ }
+};