output: Make chart geometry the responsibility of the output driver.
[pspp-builds.git] / src / output / charts / libplot-dummy.h
1 /* This file is part of the GNU plotutils package.  Copyright (C) 1995,
2    1996, 1997, 1998, 1999, 2000, 2005, 2009, Free Software Foundation, Inc.
3
4    This file has been modified for use with GNU PSPP.
5
6    The GNU plotutils package is free software.  You may redistribute it
7    and/or modify it under the terms of the GNU General Public License as
8    published by the Free Software foundation; either version 2, or (at your
9    option) any later version.
10
11    The GNU plotutils package is distributed in the hope that it will be
12    useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    General Public License for more details.
15
16    You should have received a copy of the GNU General Public License along
17    with the GNU plotutils package; see the file COPYING.  If not, write to
18    the Free Software Foundation, Inc., 51 Franklin St., Fifth Floor,
19    Boston, MA 02110-1301, USA. */
20
21 /* This is "plot.h", the public header file for GNU libplot, a shared
22    library for 2-dimensional vector graphics.  It declares both the new C
23    binding, which is thread-safe, and the old C binding, which is not. */
24
25 /* stdio.h must be included before this file is included. */
26
27 #ifndef _PLOT_H_
28 #define _PLOT_H_ 1
29
30 /***********************************************************************/
31
32 /* The functions in the C binding deal with `plPlotter' and
33    `plPlotterParams' objects.  They are the same as the `Plotter' and
34    `PlotterParams' objects of the C++ binding.  Internally, they are called
35    `plPlotterStruct' and `plPlotterParamsStruct'.  In the context of this
36    header file, they are opaque. */
37 typedef struct plPlotterStruct plPlotter;
38 typedef struct plPlotterParamsStruct plPlotterParams;
39
40 /* Support C++.  This file could be #included by a C++ compiler rather than
41    a C compiler, in which case it needs to know that libplot functions have
42    C linkage, not C++ linkage.   This is accomplished by wrapping all
43    function declarations in __BEGIN_DECLS ... __END_DECLS. */
44 #ifdef ___BEGIN_DECLS
45 #undef ___BEGIN_DECLS
46 #endif
47 #ifdef ___END_DECLS
48 #undef ___END_DECLS
49 #endif
50 #ifdef __cplusplus
51 # define ___BEGIN_DECLS extern "C" {
52 # define ___END_DECLS }
53 #else
54 # define ___BEGIN_DECLS         /* empty */
55 # define ___END_DECLS           /* empty */
56 #endif
57      
58 ___BEGIN_DECLS
59
60 /* THE C API */
61
62 /* Constructor/destructor for the plPlotter type.  Parameter values are
63    specified at creation time via a plPlotterParams instance.  There is no
64    copy constructor. */
65 plPlotter * pl_newpl_r (const char *type, FILE *infile, FILE *outfile, FILE *errfile, const plPlotterParams *plotter_params);
66 int pl_deletepl_r (plPlotter *plotter);
67
68 /* Constructor/destructor/copy constructor for the plPlotterParams type,
69    any instance of which stores parameters that are used when creating a
70    plPlotter. */
71 plPlotterParams * pl_newplparams (void);
72 int pl_deleteplparams (plPlotterParams *plotter_params);
73 plPlotterParams * pl_copyplparams (const plPlotterParams *plotter_params);
74
75 /* A function for setting a single Plotter parameter in a plPlotterParams
76    instance.  */
77 int pl_setplparam (plPlotterParams *plotter_params, const char *parameter, void *value);
78
79 /* THE PLOTTER METHODS */
80
81 /* 13 functions in traditional (pre-GNU) libplot */
82 int pl_arc_r (plPlotter *plotter, int xc, int yc, int x0, int y0, int x1, int y1);
83 int pl_box_r (plPlotter *plotter, int x0, int y0, int x1, int y1);
84 int pl_circle_r (plPlotter *plotter, int x, int y, int r);
85 int pl_closepl_r (plPlotter *plotter);
86 int pl_cont_r (plPlotter *plotter, int x, int y);
87 int pl_erase_r (plPlotter *plotter);
88 int pl_label_r (plPlotter *plotter, const char *s);
89 int pl_line_r (plPlotter *plotter, int x0, int y0, int x1, int y1);
90 int pl_linemod_r (plPlotter *plotter, const char *s);
91 int pl_move_r (plPlotter *plotter, int x, int y);
92 int pl_openpl_r (plPlotter *plotter);
93 int pl_point_r (plPlotter *plotter, int x, int y);
94 int pl_space_r (plPlotter *plotter, int x0, int y0, int x1, int y1);
95
96 /* 46 additional functions in GNU libplot, plus 1 obsolete function
97    [pl_outfile_r]. */
98 FILE* pl_outfile_r (plPlotter *plotter, FILE* outfile);/* OBSOLETE */
99 int pl_alabel_r (plPlotter *plotter, int x_justify, int y_justify, const char *s);
100 int pl_arcrel_r (plPlotter *plotter, int dxc, int dyc, int dx0, int dy0, int dx1, int dy1);
101 int pl_bezier2_r (plPlotter *plotter, int x0, int y0, int x1, int y1, int x2, int y2);
102 int pl_bezier2rel_r (plPlotter *plotter, int dx0, int dy0, int dx1, int dy1, int dx2, int dy2);
103 int pl_bezier3_r (plPlotter *plotter, int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3);
104 int pl_bezier3rel_r (plPlotter *plotter, int dx0, int dy0, int dx1, int dy1, int dx2, int dy2, int dx3, int dy3);
105 int pl_bgcolor_r (plPlotter *plotter, int red, int green, int blue);
106 int pl_bgcolorname_r (plPlotter *plotter, const char *name);
107 int pl_boxrel_r (plPlotter *plotter, int dx0, int dy0, int dx1, int dy1);
108 int pl_capmod_r (plPlotter *plotter, const char *s);
109 int pl_circlerel_r (plPlotter *plotter, int dx, int dy, int r);
110 int pl_closepath_r (plPlotter *plotter);
111 int pl_color_r (plPlotter *plotter, int red, int green, int blue);
112 int pl_colorname_r (plPlotter *plotter, const char *name);
113 int pl_contrel_r (plPlotter *plotter, int x, int y);
114 int pl_ellarc_r (plPlotter *plotter, int xc, int yc, int x0, int y0, int x1, int y1);
115 int pl_ellarcrel_r (plPlotter *plotter, int dxc, int dyc, int dx0, int dy0, int dx1, int dy1);
116 int pl_ellipse_r (plPlotter *plotter, int x, int y, int rx, int ry, int angle);
117 int pl_ellipserel_r (plPlotter *plotter, int dx, int dy, int rx, int ry, int angle);
118 int pl_endpath_r (plPlotter *plotter);
119 int pl_endsubpath_r (plPlotter *plotter);
120 int pl_fillcolor_r (plPlotter *plotter, int red, int green, int blue);
121 int pl_fillcolorname_r (plPlotter *plotter, const char *name);
122 int pl_fillmod_r (plPlotter *plotter, const char *s);
123 int pl_filltype_r (plPlotter *plotter, int level);
124 int pl_flushpl_r (plPlotter *plotter);
125 int pl_fontname_r (plPlotter *plotter, const char *s);
126 int pl_fontsize_r (plPlotter *plotter, int size);
127 int pl_havecap_r (plPlotter *plotter, const char *s);
128 int pl_joinmod_r (plPlotter *plotter, const char *s);
129 int pl_labelwidth_r (plPlotter *plotter, const char *s);
130 int pl_linedash_r (plPlotter *plotter, int n, const int *dashes, int offset);
131 int pl_linerel_r (plPlotter *plotter, int dx0, int dy0, int dx1, int dy1);
132 int pl_linewidth_r (plPlotter *plotter, int size);
133 int pl_marker_r (plPlotter *plotter, int x, int y, int type, int size);
134 int pl_markerrel_r (plPlotter *plotter, int dx, int dy, int type, int size);
135 int pl_moverel_r (plPlotter *plotter, int x, int y);
136 int pl_orientation_r (plPlotter *plotter, int direction);
137 int pl_pencolor_r (plPlotter *plotter, int red, int green, int blue);
138 int pl_pencolorname_r (plPlotter *plotter, const char *name);
139 int pl_pentype_r (plPlotter *plotter, int level);
140 int pl_pointrel_r (plPlotter *plotter, int dx, int dy);
141 int pl_restorestate_r (plPlotter *plotter);
142 int pl_savestate_r (plPlotter *plotter);
143 int pl_space2_r (plPlotter *plotter, int x0, int y0, int x1, int y1, int x2, int y2);
144 int pl_textangle_r (plPlotter *plotter, int angle);
145
146 /* 32 floating point counterparts to some of the above (all GNU additions) */
147 double pl_ffontname_r (plPlotter *plotter, const char *s);
148 double pl_ffontsize_r (plPlotter *plotter, double size);
149 double pl_flabelwidth_r (plPlotter *plotter, const char *s);
150 double pl_ftextangle_r (plPlotter *plotter, double angle);
151 int pl_farc_r (plPlotter *plotter, double xc, double yc, double x0, double y0, double x1, double y1);
152 int pl_farcrel_r (plPlotter *plotter, double dxc, double dyc, double dx0, double dy0, double dx1, double dy1);
153 int pl_fbezier2_r (plPlotter *plotter, double x0, double y0, double x1, double y1, double x2, double y2);
154 int pl_fbezier2rel_r (plPlotter *plotter, double dx0, double dy0, double dx1, double dy1, double dx2, double dy2);
155 int pl_fbezier3_r (plPlotter *plotter, double x0, double y0, double x1, double y1, double x2, double y2, double x3, double y3);
156 int pl_fbezier3rel_r (plPlotter *plotter, double dx0, double dy0, double dx1, double dy1, double dx2, double dy2, double dx3, double dy3);
157 int pl_fbox_r (plPlotter *plotter, double x0, double y0, double x1, double y1);
158 int pl_fboxrel_r (plPlotter *plotter, double dx0, double dy0, double dx1, double dy1);
159 int pl_fcircle_r (plPlotter *plotter, double x, double y, double r);
160 int pl_fcirclerel_r (plPlotter *plotter, double dx, double dy, double r);
161 int pl_fcont_r (plPlotter *plotter, double x, double y);
162 int pl_fcontrel_r (plPlotter *plotter, double dx, double dy);
163 int pl_fellarc_r (plPlotter *plotter, double xc, double yc, double x0, double y0, double x1, double y1);
164 int pl_fellarcrel_r (plPlotter *plotter, double dxc, double dyc, double dx0, double dy0, double dx1, double dy1);
165 int pl_fellipse_r (plPlotter *plotter, double x, double y, double rx, double ry, double angle);
166 int pl_fellipserel_r (plPlotter *plotter, double dx, double dy, double rx, double ry, double angle);
167 int pl_flinedash_r (plPlotter *plotter, int n, const double *dashes, double offset);
168 int pl_fline_r (plPlotter *plotter, double x0, double y0, double x1, double y1);
169 int pl_flinerel_r (plPlotter *plotter, double dx0, double dy0, double dx1, double dy1);
170 int pl_flinewidth_r (plPlotter *plotter, double size);
171 int pl_fmarker_r (plPlotter *plotter, double x, double y, int type, double size);
172 int pl_fmarkerrel_r (plPlotter *plotter, double dx, double dy, int type, double size);
173 int pl_fmove_r (plPlotter *plotter, double x, double y);
174 int pl_fmoverel_r (plPlotter *plotter, double dx, double dy);
175 int pl_fpoint_r (plPlotter *plotter, double x, double y);
176 int pl_fpointrel_r (plPlotter *plotter, double dx, double dy);
177 int pl_fspace_r (plPlotter *plotter, double x0, double y0, double x1, double y1);
178 int pl_fspace2_r (plPlotter *plotter, double x0, double y0, double x1, double y1, double x2, double y2);
179
180 /* 6 floating point operations with no integer counterpart (GNU additions) */
181 int pl_fconcat_r (plPlotter *plotter, double m0, double m1, double m2, double m3, double m4, double m5);
182 int pl_fmiterlimit_r (plPlotter *plotter, double limit);
183 int pl_frotate_r (plPlotter *plotter, double theta);
184 int pl_fscale_r (plPlotter *plotter, double x, double y);
185 int pl_fsetmatrix_r (plPlotter *plotter, double m0, double m1, double m2, double m3, double m4, double m5);
186 int pl_ftranslate_r (plPlotter *plotter, double x, double y);
187
188 /* THE OLD (non-thread-safe) C API */
189
190 /* 3 functions specific to the old C API.  (For construction/destruction
191    and selection of Plotters, and setting of Plotter parameters.  The fact
192    that a single Plotter is globally `selected' makes the old API
193    non-thread-safe.) */
194 int pl_newpl (const char *type, FILE *infile, FILE *outfile, FILE *errfile);
195 int pl_selectpl (int handle);
196 int pl_deletepl (int handle);
197
198 /* A function for setting parameters of Plotters that will subsequently be
199    created.  This also makes the old API non-thread-safe. */
200 int pl_parampl (const char *parameter, void *value);
201
202 /* THE PLOTTER METHODS */
203 /* In the old API, the Plotter to be acted on is specified by first calling 
204    selectpl(). */
205
206 /* 13 functions in traditional (pre-GNU) libplot */
207 int pl_arc (int xc, int yc, int x0, int y0, int x1, int y1);
208 int pl_box (int x0, int y0, int x1, int y1);
209 int pl_circle (int x, int y, int r);
210 int pl_closepl (void);
211 int pl_cont (int x, int y);
212 int pl_erase (void);
213 int pl_label (const char *s);
214 int pl_line (int x0, int y0, int x1, int y1);
215 int pl_linemod (const char *s);
216 int pl_move (int x, int y);
217 int pl_openpl (void);
218 int pl_point (int x, int y);
219 int pl_space (int x0, int y0, int x1, int y1);
220
221 /* 46 additional functions in GNU libplot, plus 1 obsolete function
222    [pl_outfile]. */
223 FILE* pl_outfile (FILE* outfile);/* OBSOLETE */
224 int pl_alabel (int x_justify, int y_justify, const char *s);
225 int pl_arcrel (int dxc, int dyc, int dx0, int dy0, int dx1, int dy1);
226 int pl_bezier2 (int x0, int y0, int x1, int y1, int x2, int y2);
227 int pl_bezier2rel (int dx0, int dy0, int dx1, int dy1, int dx2, int dy2);
228 int pl_bezier3 (int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3);
229 int pl_bezier3rel (int dx0, int dy0, int dx1, int dy1, int dx2, int dy2, int dx3, int dy3);
230 int pl_bgcolor (int red, int green, int blue);
231 int pl_bgcolorname (const char *name);
232 int pl_boxrel (int dx0, int dy0, int dx1, int dy1);
233 int pl_capmod (const char *s);
234 int pl_circlerel (int dx, int dy, int r);
235 int pl_closepath (void);
236 int pl_color (int red, int green, int blue);
237 int pl_colorname (const char *name);
238 int pl_contrel (int x, int y);
239 int pl_ellarc (int xc, int yc, int x0, int y0, int x1, int y1);
240 int pl_ellarcrel (int dxc, int dyc, int dx0, int dy0, int dx1, int dy1);
241 int pl_ellipse (int x, int y, int rx, int ry, int angle);
242 int pl_ellipserel (int dx, int dy, int rx, int ry, int angle);
243 int pl_endpath (void);
244 int pl_endsubpath (void);
245 int pl_fillcolor (int red, int green, int blue);
246 int pl_fillcolorname (const char *name);
247 int pl_fillmod (const char *s);
248 int pl_filltype (int level);
249 int pl_flushpl (void);
250 int pl_fontname (const char *s);
251 int pl_fontsize (int size);
252 int pl_havecap (const char *s);
253 int pl_joinmod (const char *s);
254 int pl_labelwidth (const char *s);
255 int pl_linedash (int n, const int *dashes, int offset);
256 int pl_linerel (int dx0, int dy0, int dx1, int dy1);
257 int pl_linewidth (int size);
258 int pl_marker (int x, int y, int type, int size);
259 int pl_markerrel (int dx, int dy, int type, int size);
260 int pl_moverel (int x, int y);
261 int pl_orientation (int direction);
262 int pl_pencolor (int red, int green, int blue);
263 int pl_pencolorname (const char *name);
264 int pl_pentype (int level);
265 int pl_pointrel (int dx, int dy);
266 int pl_restorestate (void);
267 int pl_savestate (void);
268 int pl_space2 (int x0, int y0, int x1, int y1, int x2, int y2);
269 int pl_textangle (int angle);
270
271 /* 32 floating point counterparts to some of the above (all GNU additions) */
272 double pl_ffontname (const char *s);
273 double pl_ffontsize (double size);
274 double pl_flabelwidth (const char *s);
275 double pl_ftextangle (double angle);
276 int pl_farc (double xc, double yc, double x0, double y0, double x1, double y1);
277 int pl_farcrel (double dxc, double dyc, double dx0, double dy0, double dx1, double dy1);
278 int pl_fbezier2 (double x0, double y0, double x1, double y1, double x2, double y2);
279 int pl_fbezier2rel (double dx0, double dy0, double dx1, double dy1, double dx2, double dy2);
280 int pl_fbezier3 (double x0, double y0, double x1, double y1, double x2, double y2, double x3, double y3);
281 int pl_fbezier3rel (double dx0, double dy0, double dx1, double dy1, double dx2, double dy2, double dx3, double dy3);
282 int pl_fbox (double x0, double y0, double x1, double y1);
283 int pl_fboxrel (double dx0, double dy0, double dx1, double dy1);
284 int pl_fcircle (double x, double y, double r);
285 int pl_fcirclerel (double dx, double dy, double r);
286 int pl_fcont (double x, double y);
287 int pl_fcontrel (double dx, double dy);
288 int pl_fellarc (double xc, double yc, double x0, double y0, double x1, double y1);
289 int pl_fellarcrel (double dxc, double dyc, double dx0, double dy0, double dx1, double dy1);
290 int pl_fellipse (double x, double y, double rx, double ry, double angle);
291 int pl_fellipserel (double dx, double dy, double rx, double ry, double angle);
292 int pl_flinedash (int n, const double *dashes, double offset);
293 int pl_fline (double x0, double y0, double x1, double y1);
294 int pl_flinerel (double dx0, double dy0, double dx1, double dy1);
295 int pl_flinewidth (double size);
296 int pl_fmarker (double x, double y, int type, double size);
297 int pl_fmarkerrel (double dx, double dy, int type, double size);
298 int pl_fmove (double x, double y);
299 int pl_fmoverel (double dx, double dy);
300 int pl_fpoint (double x, double y);
301 int pl_fpointrel (double dx, double dy);
302 int pl_fspace (double x0, double y0, double x1, double y1);
303 int pl_fspace2 (double x0, double y0, double x1, double y1, double x2, double y2);
304
305 /* 6 floating point operations with no integer counterpart (GNU additions) */
306 int pl_fconcat (double m0, double m1, double m2, double m3, double m4, double m5);
307 int pl_fmiterlimit (double limit);
308 int pl_frotate (double theta);
309 int pl_fscale (double x, double y);
310 int pl_fsetmatrix (double m0, double m1, double m2, double m3, double m4, double m5);
311 int pl_ftranslate (double x, double y);
312
313
314 /* UNDOCUMENTED FONT API CALLS */
315 /* These are used by the graphics programs in the plotutils package (e.g.,
316    `graph') to access the font tables within libplot, so that the user can
317    be given lists of font names. */
318
319 void *_pl_get_hershey_font_info (plPlotter *plotter);
320 void *_pl_get_ps_font_info (plPlotter *plotter);
321 void *_pl_get_pcl_font_info (plPlotter *plotter);
322 void *_pl_get_stick_font_info (plPlotter *plotter);
323
324 ___END_DECLS
325
326 /* THE GLOBAL VARIABLES IN GNU LIBPLOT */
327 /* There are two: user-settable error handlers (not yet documented). */
328 extern int (*pl_libplot_warning_handler) (const char *msg);
329 extern int (*pl_libplot_error_handler) (const char *msg);
330
331 #undef const
332
333 \f
334 /***********************************************************************/
335
336 /* Useful definitions, included in both plot.h and plotter.h. */
337
338 #ifndef _PL_LIBPLOT_USEFUL_DEFS
339 #define _PL_LIBPLOT_USEFUL_DEFS 1
340
341 /* Symbol types for the marker() function, extending over the range 0..31.
342    (1 through 5 are the same as in the GKS [Graphical Kernel System].)
343
344    These are now defined as enums rather than ints.  Cast them to ints if
345    necessary. */
346 enum 
347 { M_NONE, M_DOT, M_PLUS, M_ASTERISK, M_CIRCLE, M_CROSS, 
348   M_SQUARE, M_TRIANGLE, M_DIAMOND, M_STAR, M_INVERTED_TRIANGLE, 
349   M_STARBURST, M_FANCY_PLUS, M_FANCY_CROSS, M_FANCY_SQUARE, 
350   M_FANCY_DIAMOND, M_FILLED_CIRCLE, M_FILLED_SQUARE, M_FILLED_TRIANGLE, 
351   M_FILLED_DIAMOND, M_FILLED_INVERTED_TRIANGLE, M_FILLED_FANCY_SQUARE,
352   M_FILLED_FANCY_DIAMOND, M_HALF_FILLED_CIRCLE, M_HALF_FILLED_SQUARE,
353   M_HALF_FILLED_TRIANGLE, M_HALF_FILLED_DIAMOND,
354   M_HALF_FILLED_INVERTED_TRIANGLE, M_HALF_FILLED_FANCY_SQUARE,
355   M_HALF_FILLED_FANCY_DIAMOND, M_OCTAGON, M_FILLED_OCTAGON 
356 };
357
358 /* ONE-BYTE OPERATION CODES FOR GNU METAFILE FORMAT. These are now defined
359    as enums rather than ints.  Cast them to ints if necessary.
360
361    There are 85 currently recognized op codes.  The first 10 date back to
362    Unix plot(5) format. */
363
364 enum
365 {  
366 /* 10 op codes for primitive graphics operations, as in Unix plot(5) format. */
367   O_ARC         =       'a',  
368   O_CIRCLE      =       'c',  
369   O_CONT        =       'n',
370   O_ERASE       =       'e',
371   O_LABEL       =       't',
372   O_LINEMOD     =       'f',
373   O_LINE        =       'l',
374   O_MOVE        =       'm',
375   O_POINT       =       'p',
376   O_SPACE       =       's',
377   
378 /* 42 op codes that are GNU extensions */
379   O_ALABEL      =       'T',
380   O_ARCREL      =       'A',
381   O_BEZIER2     =       'q',
382   O_BEZIER2REL  =       'r',
383   O_BEZIER3     =       'y',
384   O_BEZIER3REL  =       'z',
385   O_BGCOLOR     =       '~',
386   O_BOX         =       'B',    /* not an op code in Unix plot(5) */
387   O_BOXREL      =       'H',
388   O_CAPMOD      =       'K',
389   O_CIRCLEREL   =       'G',
390   O_CLOSEPATH   =       'k',
391   O_CLOSEPL     =       'x',    /* not an op code in Unix plot(5) */
392   O_COMMENT     =       '#',
393   O_CONTREL     =       'N',
394   O_ELLARC      =       '?',
395   O_ELLARCREL   =       '/',
396   O_ELLIPSE     =       '+',
397   O_ELLIPSEREL  =       '=',
398   O_ENDPATH     =       'E',
399   O_ENDSUBPATH  =       ']',
400   O_FILLTYPE    =       'L',
401   O_FILLCOLOR   =       'D',
402   O_FILLMOD     =       'g',
403   O_FONTNAME    =       'F',
404   O_FONTSIZE    =       'S',
405   O_JOINMOD     =       'J',
406   O_LINEDASH    =       'd',
407   O_LINEREL     =       'I',
408   O_LINEWIDTH   =       'W',
409   O_MARKER      =       'Y',
410   O_MARKERREL   =       'Z',
411   O_MOVEREL     =       'M',
412   O_OPENPL      =       'o',    /* not an op code in Unix plot(5) */
413   O_ORIENTATION =       'b',
414   O_PENCOLOR    =       '-',
415   O_PENTYPE     =       'h',
416   O_POINTREL    =       'P',
417   O_RESTORESTATE=       'O',
418   O_SAVESTATE   =       'U',
419   O_SPACE2      =       ':',
420   O_TEXTANGLE   =       'R',
421
422 /* 30 floating point counterparts to many of the above.  They are not even
423    slightly mnemonic. */
424   O_FARC        =       '1',
425   O_FARCREL     =       '2',
426   O_FBEZIER2    =       '`',
427   O_FBEZIER2REL =       '\'',
428   O_FBEZIER3    =       ',',
429   O_FBEZIER3REL =       '.',
430   O_FBOX        =       '3',
431   O_FBOXREL     =       '4',
432   O_FCIRCLE     =       '5',
433   O_FCIRCLEREL  =       '6',
434   O_FCONT       =       ')',
435   O_FCONTREL    =       '_',
436   O_FELLARC     =       '}',
437   O_FELLARCREL  =       '|',
438   O_FELLIPSE    =       '{',
439   O_FELLIPSEREL =       '[',
440   O_FFONTSIZE   =       '7',
441   O_FLINE       =       '8',
442   O_FLINEDASH   =       'w',
443   O_FLINEREL    =       '9',
444   O_FLINEWIDTH  =       '0',
445   O_FMARKER     =       '!',
446   O_FMARKERREL  =       '@',
447   O_FMOVE       =       '$',
448   O_FMOVEREL    =       '%',
449   O_FPOINT      =       '^',
450   O_FPOINTREL   =       '&',
451   O_FSPACE      =       '*',
452   O_FSPACE2     =       ';',
453   O_FTEXTANGLE  =       '(',
454
455 /* 3 op codes for floating point operations with no integer counterpart */
456   O_FCONCAT             =       '\\',
457   O_FMITERLIMIT         =       'i',
458   O_FSETMATRIX          =       'j'
459 };
460
461 #endif /* not _PL_LIBPLOT_USEFUL_DEFS */
462
463 /***********************************************************************/
464
465 #endif /* not _PLOT_H_ */