aboutsummaryrefslogtreecommitdiff
path: root/lib/gio.h
diff options
context:
space:
mode:
authorJoe Hunkeler <jhunkeler@gmail.com>2015-08-11 16:51:37 -0400
committerJoe Hunkeler <jhunkeler@gmail.com>2015-08-11 16:51:37 -0400
commit40e5a5811c6ffce9b0974e93cdd927cbcf60c157 (patch)
tree4464880c571602d54f6ae114729bf62a89518057 /lib/gio.h
downloadiraf-osx-40e5a5811c6ffce9b0974e93cdd927cbcf60c157.tar.gz
Repatch (from linux) of OSX IRAF
Diffstat (limited to 'lib/gio.h')
-rw-r--r--lib/gio.h162
1 files changed, 162 insertions, 0 deletions
diff --git a/lib/gio.h b/lib/gio.h
new file mode 100644
index 00000000..5400afc4
--- /dev/null
+++ b/lib/gio.h
@@ -0,0 +1,162 @@
+# GIO.H -- GIO package definitions.
+
+define MAX_WCS 16 # max user defined WCS
+define LEN_PLBUF 2048 # max points in a polyline
+define MAX_SZMARKER 4 # max standard marker sizes
+define POLYLINE 1 # G_PLTYPE values
+define POLYMARKER 2
+define FILLAREA 3
+define POINTMODE 4 # pointmode polymarker
+define LINEAR 0 # axis scaling functions
+define LOG 1
+define ELOG 2
+define DEF_CHARHEIGHT 0.0286 # default char height
+define DEF_CHARWIDTH 0.0125 # default char width
+
+# PSIO/CURSOR definitions.
+
+define KSHIFT 10000
+define DATA 0
+define XMIT 1
+define XFER 2
+define PSIO 3
+define OSCMD 4
+
+# WCS and attribute packet states. A modified packet must be "fixed" to
+# the device (by output of a GKI_SET instruction) before the associated
+# output instruction is issued.
+
+define UNSET 0 # initial state
+define MODIFIED 1 # modified internally
+define FIXED 2 # output in GKI stream
+
+# GP_FLAGS bit flag definitions. Lots of spare flag bits available.
+
+define GF_CLOSEFD 1 # close output file at gclose time
+define GF_WSOPEN 2 # workstation has been opened
+define GF_WSACTIVE 4 # workstation is activated
+
+# Graphics descriptor. The polyline, polymarker, text, and fill area
+# attributes and the GLABAX parameters for the X and Y axes are stored
+# in the descriptor as substructures.
+
+#define LEN_GDES 552
+define LEN_GDES 600
+define LEN_WCS 12
+define LEN_WCSARRAY (LEN_WCS*MAX_WCS)
+define SZ_DEVNAME 29
+define SZ_UIFNAME 199
+define SZ_TICKFORMAT 9
+
+define GP_FD Memi[$1] # graphics stream
+define GP_TTY Memi[$1+1] # graphcap descriptor
+define GP_GFLAGS Memi[$1+2] # GIO flag bits
+define GP_ACMODE Memi[$1+3] # gopen access mode
+define GP_WCS Memi[$1+4] # current WCS
+define GP_WCSSTATE Memi[$1+5] # unset, modifed, or fixed
+define GP_WCSORD Memi[$1+6] # unique WCS ordinal
+define GP_CURSOR Memi[$1+7] # current cursor number
+define GP_DEVASPECT Memr[P2R($1+8)] # device aspect ratio
+define GP_SZMARKER Memr[P2R($1+9+$2-1)] # standard marker sizes
+ # (extra space)
+define GP_PLAP ($1+20) # polyline attributes
+define GP_PMAP ($1+24) # polymarker attributes
+define GP_FAAP ($1+28) # fill area attributes
+define GP_TXAP ($1+31) # default text attributes
+define GP_TXAPCUR ($1+41) # text drawing attributes
+define GP_DRAWTITLE Memi[$1+55] # draw title on graph
+define GP_TITLESIZE Memr[P2R($1+56)] # character size of title
+define GP_TITLECOLOR Memi[$1+57] # color of title
+define GP_TITLEJUST Memi[$1+58] # title justification
+define GP_NTITLELINES Memi[$1+59] # number of lines in title
+define GP_FRAMECOLOR Memi[$1+60] # color of viewport frame
+define GP_FRAMEDRAWN Memi[$1+61] # set when frame first drawn
+define GP_ASPECT Memr[P2R($1+62)] # aspect ratio of viewport
+define GP_XAP ($1+65) # glabax parameters for X axis
+define GP_YAP ($1+100) # glabax parameters for Y axis
+define GP_DEVNAME Memc[P2C($1+135)] # gopen device name
+define GP_UIFNAME Memc[P2C($1+165)] # UI file name
+define GP_WCSPTR (($2)*LEN_WCS+($1)+367) # pointer to WCS substructure
+ # (367:571 aligned wcs storage, 17*12=204 units)
+ # (next=572)
+
+# Substructure definitions.
+
+define LEN_PL 4
+define PL_STATE Memi[$1] # polyline attributes
+define PL_LTYPE Memi[$1+1]
+define PL_WIDTH Memr[P2R($1+2)]
+define PL_COLOR Memi[$1+3]
+
+define LEN_PM 4
+define PM_STATE Memi[$1] # polymarker attributes
+define PM_LTYPE Memi[$1+1]
+define PM_WIDTH Memr[P2R($1+2)]
+define PM_COLOR Memi[$1+3]
+
+define LEN_FA 3
+define FA_STATE Memi[$1] # fill area attributes
+define FA_STYLE Memi[$1+1]
+define FA_COLOR Memi[$1+2]
+
+define LEN_TX 10
+define TX_STATE Memi[$1] # text attributes
+define TX_UP Memi[$1+1]
+define TX_SIZE Memr[P2R($1+2)]
+define TX_PATH Memi[$1+3]
+define TX_SPACING Memr[P2R($1+4)]
+define TX_HJUSTIFY Memi[$1+5]
+define TX_VJUSTIFY Memi[$1+6]
+define TX_FONT Memi[$1+7]
+define TX_QUALITY Memi[$1+8]
+define TX_COLOR Memi[$1+9]
+
+# GLABAX parameters for either axis.
+
+define LEN_GL 33
+define GL_DRAWAXES Memi[$1] # 0=none,1=first,2=second,3=both
+define GL_SETAXISPOS Memi[$1+1] # X axes to be drawn
+define GL_AXISPOS1 Memr[P2R($1+2)] # WCS coord of axis 1
+define GL_AXISPOS2 Memr[P2R($1+3)] # WCS coord of axis 2
+define GL_DRAWGRID Memi[$1+4] # draw grid between ticks
+define GL_GRIDCOLOR Memi[$1+5] # grid color
+define GL_ROUND Memi[$1+6] # extend WCS to next tick
+define GL_LABELAXIS Memi[$1+7] # draw the axis label
+define GL_AXISLABELSIZE Memr[P2R($1+8)] # char size of axis labels
+define GL_AXISLABELCOLOR Memi[$1+9] # char size of axis labels
+define GL_DRAWTICKS Memi[$1+10] # draw ticks
+define GL_LABELTICKS Memi[$1+11] # draw tick labels
+define GL_NMAJOR Memi[$1+12] # number of major ticks
+define GL_NMINOR Memi[$1+13] # number of minor ticks (if!log)
+define GL_MAJORLENGTH Memr[P2R($1+14)] # NDC length of major ticks
+define GL_MINORLENGTH Memr[P2R($1+15)] # NDC length of minor ticks
+define GL_MAJORWIDTH Memr[P2R($1+16)] # linewidth of major ticks
+define GL_MINORWIDTH Memr[P2R($1+17)] # linewidth of minor ticks
+define GL_AXISWIDTH Memr[P2R($1+18)] # linewidth of axis
+define GL_AXISCOLOR Memi[$1+19] # axis color
+define GL_TICKLABELSIZE Memr[P2R($1+20)] # char size of tick labels
+define GL_TICKLABELCOLOR Memi[$1+21] # char size of tick labels
+define GL_TICKCOLOR Memi[$1+22] # axis color
+define GL_TICKFORMAT Memc[P2C($1+23)] # printf format of ticks
+
+# WCS substructure.
+define WCS_WX1 Memr[P2R($1)] # window coordinates
+define WCS_WX2 Memr[P2R($1+1)]
+define WCS_WY1 Memr[P2R($1+2)]
+define WCS_WY2 Memr[P2R($1+3)]
+define WCS_SX1 Memr[P2R($1+4)] # viewport coordinates
+define WCS_SX2 Memr[P2R($1+5)]
+define WCS_SY1 Memr[P2R($1+6)]
+define WCS_SY2 Memr[P2R($1+7)]
+define WCS_XTRAN Memi[$1+8] # type of scaling (linear,log)
+define WCS_YTRAN Memi[$1+9]
+define WCS_FLAGS Memi[$1+10] # assorted flags
+define WCS_CLIP WCS_FLAGS # for backwards compatibility
+
+# WCS_FLAGS bitfields.
+define WF_DEFINED 00001B # WCS has been defined
+define WF_CLIP 00002B # clip at viewport boundary
+define WF_NEWFORMAT 00004B # new format WCS
+ # (reserved) # remaining bits reserved
+define WF_RASTER (and(($1)/512,0777B)) # get raster number
+define WF_SETRASTER (or(($1),($2)*512)) # set raster number