1 /*====================================================================* 2 - Copyright (C) 2001 Leptonica. All rights reserved. 3 - This software is distributed in the hope that it will be 4 - useful, but with NO WARRANTY OF ANY KIND. 5 - No author or distributor accepts responsibility to anyone for the 6 - consequences of using this software, or for whether it serves any 7 - particular purpose or works at all, unless he or she says so in 8 - writing. Everyone is granted permission to copy, modify and 9 - redistribute this source code, for commercial or non-commercial 10 - purposes, with the following restrictions: (1) the origin of this 11 - source code must not be misrepresented; (2) modified versions must 12 - be plainly marked as such; and (3) this notice may not be removed 13 - or altered from any source or modified source distribution. 14 *====================================================================*/ 15 16 #ifndef LEPTONICA_GPLOT_H 17 #define LEPTONICA_GPLOT_H 18 19 /* 20 * gplot.h 21 * 22 * Data structures and parameters for generating gnuplot files 23 */ 24 25 #define GPLOT_VERSION_NUMBER 1 26 27 #define NUM_GPLOT_STYLES 5 28 enum GPLOT_STYLE { 29 GPLOT_LINES = 0, 30 GPLOT_POINTS = 1, 31 GPLOT_IMPULSES = 2, 32 GPLOT_LINESPOINTS = 3, 33 GPLOT_DOTS = 4 34 }; 35 36 #define NUM_GPLOT_OUTPUTS 6 37 enum GPLOT_OUTPUT { 38 GPLOT_NONE = 0, 39 GPLOT_PNG = 1, 40 GPLOT_PS = 2, 41 GPLOT_EPS = 3, 42 GPLOT_X11 = 4, 43 GPLOT_LATEX = 5 44 }; 45 46 enum GPLOT_SCALING { 47 GPLOT_LINEAR_SCALE = 0, /* default */ 48 GPLOT_LOG_SCALE_X = 1, 49 GPLOT_LOG_SCALE_Y = 2, 50 GPLOT_LOG_SCALE_X_Y = 3 51 }; 52 53 extern const char *gplotstylenames[]; /* used in gnuplot cmd file */ 54 extern const char *gplotfilestyles[]; /* used in simple file input */ 55 extern const char *gplotfileoutputs[]; /* used in simple file input */ 56 57 struct GPlot 58 { 59 char *rootname; /* for cmd, data, output */ 60 char *cmdname; /* command file name */ 61 struct Sarray *cmddata; /* command file contents */ 62 struct Sarray *datanames; /* data file names */ 63 struct Sarray *plotdata; /* plot data (1 string/file) */ 64 struct Sarray *plottitles; /* title for each individual plot */ 65 struct Numa *plotstyles; /* plot style for individual plots */ 66 l_int32 nplots; /* current number of plots */ 67 char *outname; /* output file name */ 68 l_int32 outformat; /* GPLOT_OUTPUT values */ 69 l_int32 scaling; /* GPLOT_SCALING values */ 70 char *title; /* optional */ 71 char *xlabel; /* optional x axis label */ 72 char *ylabel; /* optional y axis label */ 73 }; 74 typedef struct GPlot GPLOT; 75 76 77 #endif /* LEPTONICA_GPLOT_H */ 78