PLplot: metadefs.h Source File

PLplot 5.15.0

metadefs.h
Go to the documentation of this file.
1 // Geoffrey Furnish
2 // 5 May 1991
3 //
4 // This file contains definitions of constants and structures which
5 // are needed by the PLplot metafile writer and renderer.
6 //
7
8 //
9 // PLMETA_HEADER holds the magic string at head of metafile.
10 // PLMETA_VERSION holds the version number (year & letter).
11 //
12 // Note: All strings written into the file header are limited to a maximum
13 // of 80 characters.
14 //
15
16 #define PLMETA_HEADER "PLPLOT"
17 #define PLMETA_VERSION "2005a"
18
19 // These are used by the TK driver client/server code
20
21 #define PLSERV_HEADER "PLPLOT"
22 #define PLSERV_VERSION "2005b"
23
24 // Symbolic constants for old metafile versions (prior to 1992a).
25 // Now these are stored in the metafile header.
26
27 #define PLMETA_X_OLD 10000
28 #define PLMETA_Y_OLD 10000
29
30 // Virtual dots/mm for our virtual display space.
31
32 #define PIXEL_RES_X_OLD 42
33 #define PIXEL_RES_Y_OLD 56
34
35 // Macros to make it easier to abort on nonzero return code
36 // Can't call plexit on a write failure since that would be circular
37
38 #define plm_wr( code ) \
39 if ( code ) { fprintf( stderr, "Unable to write to MetaFile\n" ); exit( 1 ); }
40
41 #define plm_rd( code ) \
42 if ( code ) plexit( "Unable to read from MetaFile" )
43
44 //
45 // Metafile commands.
46 //
47 //** NOTICE !!! ***
48 // If you change ANY of the following, you will wreck backward
49 // backward compatibility with old metafiles. You may add, but do
50 // NOT delete !!!
51 //
52
53 #define INITIALIZE 1
54 #define CLOSE 2
55 #define SWITCH_TO_TEXT 3 // Obsolete, replaced by ESCAPE
56 #define SWITCH_TO_GRAPH 4 // Obsolete, replaced by ESCAPE
57 #define EOP 5
58 #define BOP 6
59 #define NEW_COLOR 7 // Obsolete, replaced by CHANGE_STATE
60 #define NEW_WIDTH 8 // Obsolete, replaced by CHANGE_STATE
61 #define LINE 9
62 #define LINETO 10
63 #define ESCAPE 11
64 #define ADVANCE 12 // Obsolete, BOP/EOP used instead
65 #define POLYLINE 13
66 #define NEW_COLOR0 NEW_COLOR
67 #define NEW_COLOR1 14
68 #define CHANGE_STATE 15
69 #define BOP0 16 // First BOP in a file
70 #define DRIVER_INTERFACE 17
71 #define SETSUB 18
72 #define SSUB 19
73 #define CLIP 20
74 #define END_OF_FIELD 255
75
76 // Data structures
77
78 // Metafile index data structure
79 typedef struct
80 {
81 U_SHORT pages;
82 } PLmIndex;
83
84 // plmeta output device data structure. Define it here so that
85 // it can be shared between the input/output modules.
86 typedef struct
87 {
88 PLFLT pxlx, pxly;
89 PLINT xold, yold;
90
91 PLINT xmin, xmax, xlen;
92 PLINT ymin, ymax, ylen;
93
94 FPOS_T index_offset; // Position of the metafile index
95 FPOS_T lp_offset; // Position of the previous page
96
97 int notfirst;
98
99 PLINT version; // Metafile version number
100 U_SHORT page; // Current page
101
102 // Metafile coordinates to physical (virtual pixels) coordinates
103 // transformation
104 PLFLT mfpcxa, mfpcxb; // x = mfpcxa * x + mfpcxb
105 PLFLT mfpcya, mfpcyb; // y = mfpcya * y + mfpcyb
106
107 // Temporary storage used for metafile processing.
108 void * buffer;
109 size_t buffer_size;
110 } PLmDev;
FPOS_T
#define FPOS_T
Definition: plplotP.h:141
PLmDev::pxly
PLFLT pxly
Definition: metadefs.h:88
PLmDev::buffer
void * buffer
Definition: metadefs.h:108
PLmDev::notfirst
int notfirst
Definition: metadefs.h:97
PLmDev::mfpcxb
PLFLT mfpcxb
Definition: metadefs.h:104
PLmIndex::pages
U_SHORT pages
Definition: metadefs.h:81
PLmIndex
Definition: metadefs.h:79
U_SHORT
#define U_SHORT
Definition: pdf.h:30
PLmDev::xmin
PLINT xmin
Definition: metadefs.h:91
PLINT
int PLINT
Definition: plplot.h:181
PLmDev::version
PLINT version
Definition: metadefs.h:99
PLmDev::buffer_size
size_t buffer_size
Definition: metadefs.h:109
PLmDev::lp_offset
FPOS_T lp_offset
Definition: metadefs.h:95
PLmDev
Definition: metadefs.h:86
PLmDev::page
U_SHORT page
Definition: metadefs.h:100
PLmDev::index_offset
FPOS_T index_offset
Definition: metadefs.h:94
PLFLT
float PLFLT
Definition: plplot.h:163
PLmDev::mfpcyb
PLFLT mfpcyb
Definition: metadefs.h:105
PLmDev::yold
PLINT yold
Definition: metadefs.h:89
PLmDev::ymin
PLINT ymin
Definition: metadefs.h:92