/* $Id: metadefs.h,v 1.2 2007/05/08 09:09:37 rice Exp $

	Geoffrey Furnish
	5 May 1991
	
	This file contains definitions of constants and structures which
	are needed by the PLplot metafile writer and renderer.
*/

/*
* PLMETA_HEADER holds the magic string at head of metafile.
* PLMETA_VERSION holds the version number (year & letter).
* 
* Note: All strings written into the file header are limited to a maximum
* of 80 characters.
*/

#define PLMETA_HEADER	"PLPLOT"
#define PLMETA_VERSION	"2005a"

/* These are used by the TK driver client/server code */

#define PLSERV_HEADER	"PLPLOT"
#define PLSERV_VERSION	"2005b"

/* Symbolic constants for old metafile versions (prior to 1992a). */
/* Now these are stored in the metafile header. */

#define PLMETA_X_OLD	10000
#define PLMETA_Y_OLD	10000

/* Virtual dots/mm for our virtual display space. */

#define PIXEL_RES_X_OLD		42
#define PIXEL_RES_Y_OLD		56

/* Macros to make it easier to abort on nonzero return code */
/* Can't call plexit on a write failure since that would be circular */

#define plm_wr(code) \
    if (code) { fprintf(stderr, "Unable to write to MetaFile\n"); exit(1); }

#define plm_rd(code) \
    if (code) plexit( "Unable to read from MetaFile" )

/*
   Metafile commands.

   *** NOTICE !!! ***
   If you change ANY of the following, you will wreck backward
   backward compatibility with old metafiles.  You may add, but do
   NOT delete !!!
*/

#define INITIALIZE	1
#define CLOSE		2
#define SWITCH_TO_TEXT	3	/* Obsolete, replaced by ESCAPE */
#define SWITCH_TO_GRAPH	4	/* Obsolete, replaced by ESCAPE */
#define EOP		5
#define BOP		6
#define NEW_COLOR	7	/* Obsolete, replaced by CHANGE_STATE */
#define NEW_WIDTH	8	/* Obsolete, replaced by CHANGE_STATE */
#define LINE		9
#define LINETO		10
#define ESCAPE		11
#define ADVANCE		12	/* Obsolete, BOP/EOP used instead */
#define POLYLINE	13
#define NEW_COLOR0 	NEW_COLOR
#define NEW_COLOR1	14
#define CHANGE_STATE	15
#define BOP0		16	/* First BOP in a file */
#define END_OF_FIELD	255