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