1 /* @include ajgraph ***********************************************************
2 **
3 ** General Plot/Printing routines.
4 **
5 ** @version $Revision: 1.42 $
6 ** @modified $Date: 2011/10/18 14:23:41 $ by $Author: rice $
7 ** @@
8 **
9 ** This library is free software; you can redistribute it and/or
10 ** modify it under the terms of the GNU Lesser General Public
11 ** License as published by the Free Software Foundation; either
12 ** version 2.1 of the License, or (at your option) any later version.
13 **
14 ** This library is distributed in the hope that it will be useful,
15 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
16 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17 ** Lesser General Public License for more details.
18 **
19 ** You should have received a copy of the GNU Lesser General Public
20 ** License along with this library; if not, write to the Free Software
21 ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
22 ** MA  02110-1301,  USA.
23 **
24 ******************************************************************************/
25 
26 
27 #ifndef AJGRAPH_H
28 #define AJGRAPH_H
29 
30 /* ========================================================================= */
31 /* ============================= include files ============================= */
32 /* ========================================================================= */
33 
34 #include "ajdefine.h"
35 #include "plplot.h"
36 #include "ajgraphstruct.h"
37 #include "ajdefine.h"
38 #include "ajstr.h"
39 #include "ajseqdata.h"
40 #include <stdlib.h>
41 #include <stdio.h>
42 #include <string.h>
43 
44 AJ_BEGIN_DECLS
45 
46 
47 
48 
49 /* ========================================================================= */
50 /* =============================== constants =============================== */
51 /* ========================================================================= */
52 
53 
54 
55 
56 #define GRAPH_XGAP      60
57 #define GRAPH_YGAP      60
58 #define GRAPH_TITLE_GAP 60
59 
60 #define AJGRAPH_X_BOTTOM   0x0001  /* print xaxis bottom line */
61 #define AJGRAPH_Y_LEFT     0x0002  /* print yaxis left line */
62 #define AJGRAPH_X_TOP      0x0004  /* print xaxis top line */
63 #define AJGRAPH_Y_RIGHT    0x0008  /* printf y axis on the right*/
64 #define AJGRAPH_X_TICK     0x0010  /* add tick marks for x axis (bottom) */
65 #define AJGRAPH_Y_TICK     0x0020  /* add tick marks for y axis (left) */
66 #define AJGRAPH_X_LABEL    0x0040  /* add x axis label */
67 #define AJGRAPH_Y_LABEL    0x0080  /* add y axis label */
68 #define AJGRAPH_TITLE      0x0100  /* add title */
69 #define AJGRAPH_JOINPOINTS 0x0200  /* join the point data by a line */
70 #define AJGRAPH_OVERLAP    0x0400  /* write plots on top of each other */
71 #define AJGRAPH_Y_NUMLABEL_LEFT   0x0800
72 #define AJGRAPH_Y_INVERT_TICK     0x1000
73 #define AJGRAPH_Y_GRID            0x2000
74 #define AJGRAPH_X_NUMLABEL_ABOVE  0x4000
75 #define AJGRAPH_X_INVERT_TICK     0x8000
76 #define AJGRAPH_X_GRID            0x10000
77 #define AJGRAPH_CIRCLEPOINTS      0x20000
78 #define AJGRAPH_SUBTITLE          0x40000
79 #define AJGRAPH_GAPS              0x80000
80 
81 #define GRAPH_XY (AJGRAPH_X_BOTTOM + AJGRAPH_Y_LEFT + AJGRAPH_X_TOP + \
82 		  AJGRAPH_Y_RIGHT + AJGRAPH_X_TICK + AJGRAPH_Y_TICK + \
83 		  AJGRAPH_Y_LABEL + AJGRAPH_JOINPOINTS + AJGRAPH_X_LABEL + \
84 		  AJGRAPH_TITLE + AJGRAPH_SUBTITLE + AJGRAPH_OVERLAP)
85 
86 #define GRAPH_XY_MAIN (AJGRAPH_X_BOTTOM + AJGRAPH_Y_LEFT + AJGRAPH_Y_RIGHT + \
87 		       AJGRAPH_X_TOP + AJGRAPH_Y_TICK + AJGRAPH_X_LABEL + \
88 		       AJGRAPH_Y_LABEL + AJGRAPH_JOINPOINTS + AJGRAPH_TITLE + \
89 		       AJGRAPH_SUBTITLE + AJGRAPH_OVERLAP)
90 
91 
92 
93 /* ========================================================================= */
94 /* ============================== public data ============================== */
95 /* ========================================================================= */
96 
97 
98 
99 
100 /* ========================================================================= */
101 /* =========================== public functions ============================ */
102 /* ========================================================================= */
103 
104 
105 
106 /*
107 ** Prototype definitions
108 */
109 
110 void          ajGraphicsListDevices (AjPList list);
111 void          ajGraphicsxyListDevices (AjPList list);
112 ajint*        ajGraphicsBasecolourNewNuc(const AjPStr codes);
113 ajint*        ajGraphicsBasecolourNewProt(const AjPStr codes);
114 ajint         ajGraphicsCheckColourC(const char* text);
115 ajint         ajGraphicsCheckColourS(const AjPStr colour);
116 
117 void          ajGraphicsGetCharsize(float *defheight, float *currentscale);
118 ajint         ajGraphicsGetFgcolour(void);
119 ajuint        ajGraphicsGetOutfiles(AjPList* files);
120 void          ajGraphGetParamsPage(const AjPGraph thys,
121                                    float *xp,float *yp, ajint *xleng,
122                                    ajint *yleng, ajint *xoff, ajint *yoff);
123 void          ajGraphicsGetParamsPage(float *xp,float *yp, ajint *xleng,
124                                       ajint *yleng, ajint *xoff, ajint *yoff);
125 
126 void          ajGraphicsResetBgcolour(void);
127 void          ajGraphicsResetFgcolour(void);
128 
129 void          ajGraphicsSetBgcolourBlack(void);
130 void          ajGraphicsSetBgcolourWhite(void);
131 float         ajGraphicsSetCharscale(float scale);
132 float         ajGraphicsSetCharsize(float size);
133 float         ajGraphicsSetDefcharsize(float size);
134 void          ajGraphicsSetDevice(const AjPGraph graph);
135 ajint         ajGraphicsSetFgcolour(ajint colour);
136 void          ajGraphicsSetPortrait(AjBool set);
137 void          ajGraphicsSetPenwidth(float width);
138 ajint         ajGraphicsSetFillpat (ajint style);
139 ajint         ajGraphicsSetLinestyle (ajint style);
140 void          ajGraphicsSetLabelsC(const char *x, const char *y,
141                                    const char *title, const char *subtitle);
142 void          ajGraphicsSetLabelsS(const AjPStr x, const AjPStr y,
143                                    const AjPStr title, const AjPStr subtitle);
144 
145 void          ajGraphicsPlenv (float xmin, float xmax, float ymin, float ymax,
146                                ajint flags);
147 void          ajGraphicsPrintType(AjPFile outf, AjBool full);
148 void          ajGraphicsSetPagesize(ajuint pagewidth, ajuint pageheight);
149 
150 void          ajGraphicsClose (void);
151 void          ajGraphicsCloseWin (void);
152 
153 void          ajGraphicsDumpDevices (void);
154 void          ajGraphicsxyDumpDevices (void);
155 
156 void          ajGraphicsCalcRange(const float *array, ajuint npoints,
157                                   float *min, float *max);
158 
159 PLFLT         *ajGraphicsCalcCoord(PLFLT xcentre, PLFLT ycentre, PLFLT Radius,
160                                    PLFLT Angle);
161 PLFLT         ajGraphicsCalcTextlengthC(const char *text);
162 PLFLT         ajGraphicsCalcTextlengthS(const AjPStr str);
163 PLFLT         ajGraphicsCalcTextheight(void);
164 PLFLT         ajGraphicsCalcDistance(PLFLT xx1, PLFLT yy1,
165                                      PLFLT xx2, PLFLT yy2);
166 PLFLT         ajGraphicsCalcCharsize(PLFLT xx1, PLFLT yy1,
167                                      PLFLT xx2, PLFLT yy2,
168                                      const char *text, PLFLT TextHeight);
169 
170 void          ajGraphicsDrawarcArc(PLFLT xcentre, PLFLT ycentre, PLFLT radius,
171                                    PLFLT startangle, PLFLT endangle);
172 void          ajGraphicsDrawbarsHoriz(ajuint num, PLFLT *y,
173                                       PLFLT *xmin, PLFLT *xmax);
174 void          ajGraphicsDrawbarsVert(ajuint num, PLFLT *x,
175                                      PLFLT *ymin, PLFLT *ymax);
176 void          ajGraphicsDrawposBox(PLFLT xx0, PLFLT yy0,PLFLT size);
177 void          ajGraphicsDrawposBoxFill(PLFLT xx0, PLFLT yy0, PLFLT size);
178 void          ajGraphicsDrawposCircle(PLFLT xcentre, PLFLT ycentre,
179                                       float radius);
180 void          ajGraphicsDrawposDia(PLFLT xx0, PLFLT yy0, PLFLT size);
181 void          ajGraphicsDrawposDiaFill(PLFLT xx0, PLFLT yy0, PLFLT size);
182 void          ajGraphicsDrawsetDots(ajuint nhum, PLFLT *xx1,PLFLT *yy1);
183 void          ajGraphicsDrawposLine(PLFLT xx1,PLFLT yy1,PLFLT xx2,PLFLT yy2);
184 void          ajGraphicsDrawsetLines(ajuint num, PLFLT *xx,PLFLT *yy,
185                                      PLFLT *xx2,PLFLT *yy2);
186 void          ajGraphicsDrawsetPoly(ajuint num, PLFLT *x, PLFLT *y);
187 void          ajGraphicsDrawsetPolyFill(ajuint num, PLFLT *x, PLFLT *y);
188 void          ajGraphicsDrawposRect(PLFLT x, PLFLT y,PLFLT xx1, PLFLT yy1) ;
189 void          ajGraphicsDrawposRectFill(PLFLT x, PLFLT y,
190                                      PLFLT xx1, PLFLT yy1) ;
191 void          ajGraphicsDrawarcRect(PLFLT xcentre, PLFLT ycentre, PLFLT radius,
192                                     PLFLT startangle, PLFLT endangle,
193                                     PLFLT height);
194 void          ajGraphicsDrawarcRectFill(PLFLT xcentre, PLFLT ycentre,
195                                         PLFLT radius,
196                                         PLFLT startangle, PLFLT endangle,
197                                         PLFLT height);
198 void          ajGraphicsSetRlabelC(const char *text);
199 void          ajGraphicsSetRlabelS(const AjPStr str);
200 void          ajGraphicsDrawsetSymbols(ajuint num, PLFLT *xx,PLFLT *yy,
201                                        ajuint symbol);
202 void          ajGraphicsDrawposTextJustify(PLFLT x, PLFLT y,
203                                            const char *txt,
204                                            PLFLT just);
205 void          ajGraphicsDrawarcTextJustify(PLFLT xcentre, PLFLT ycentre,
206                                            PLFLT radius, PLFLT startangle,
207                                            PLFLT endangle,
208                                            const char *txt, PLFLT just);
209 void          ajGraphicsDrawposTextAtend(PLFLT x, PLFLT y, const char *txt);
210 void          ajGraphicsDrawposTextAtmid(PLFLT x, PLFLT y, const char *txt);
211 void          ajGraphicsDrawposTextAtstart(PLFLT x, PLFLT y,
212                                            const char *txt);
213 void          ajGraphicsDrawposTextAtlineJustify(PLFLT x, PLFLT y,
214                                                  PLFLT x2, PLFLT y2,
215                                                  const char *txt, PLFLT just);
216 void          ajGraphicsDrawposTri(PLFLT x, PLFLT y, PLFLT x2, PLFLT y2,
217                                    PLFLT x3, PLFLT y3);
218 void          ajGraphicsDrawposTriFill(PLFLT x, PLFLT y, PLFLT x2, PLFLT y2,
219                                        PLFLT x3, PLFLT y3);
220 
221 AjPGraph      ajGraphNew (void);
222 AjPGraph      ajGraphxyNewI (ajuint numofpoints);
223 
224 void          ajGraphClear(AjPGraph thys);
225 
226 const char*   ajGraphGetSubtitleC(const AjPGraph thys);
227 const AjPStr  ajGraphGetSubtitleS(const AjPGraph thys);
228 const char*   ajGraphGetTitleC(const AjPGraph thys);
229 const AjPStr  ajGraphGetTitleS(const AjPGraph thys);
230 const char*   ajGraphGetXlabelC(const AjPGraph thys);
231 const AjPStr  ajGraphGetXlabelS(const AjPGraph thys);
232 const char*   ajGraphGetYlabelC(const AjPGraph thys);
233 const AjPStr  ajGraphGetYlabelS(const AjPGraph thys);
234 
235 void          ajGraphInitSeq (AjPGraph thys, const AjPSeq seq);
236 AjBool        ajGraphIsData(const AjPGraph thys);
237 
238 
239 void          ajGraphNewpage (AjPGraph thys, AjBool resetdefaults);
240 void          ajGraphAddLine (AjPGraph thys, float x, float y,
241                                  float x2, float y2, ajint colour);
242 void          ajGraphAddRect (AjPGraph thys, float x, float y,
243                                  float x2, float y2, ajint colour,
244                                  ajint fill);
245 void          ajGraphAddTextC (AjPGraph thys, float x, float y,
246 				 ajint colour, const char *text);
247 void          ajGraphAddTextScaleC (AjPGraph thys, float x, float y,
248                                        ajint colour, float scale,
249                                        const char *text);
250 void          ajGraphAddTextS (AjPGraph thys, float x, float y,
251                                   ajint colour, const AjPStr str);
252 void          ajGraphAddTextScaleS (AjPGraph thys, float x, float y,
253                                        ajint colour, float scale,
254                                        const AjPStr str);
255 void          ajGraphOpenFlags(AjPGraph thys, PLFLT xmin, PLFLT xmax,
256                                PLFLT ymin, PLFLT ymax, ajint flags);
257 void          ajGraphOpenPlotset (AjPGraph thys, ajuint numofsets);
258 void          ajGraphOpenWin  (AjPGraph thys, float xmin, float xmax,
259 			       float ymin, float ymax);
260 void          ajGraphOpenMm(AjPGraph thys, float * xmm, float *ymm);
261 AjBool        ajGraphSetDevicetype(AjPGraph thys, const AjPStr type);
262 void          ajGraphSetMulti (AjPGraph thys, ajuint numsets);
263 void          ajGraphicsSetFilename (const AjPGraph graph);
264 void          ajGraphTrace (const AjPGraph thys);
265 AjBool        ajGraphDataAdd (AjPGraph thys, AjPGraphdata graphdata);
266 AjBool        ajGraphDataReplace (AjPGraph thys, AjPGraphdata graphdata);
267 AjBool        ajGraphDataReplaceI (AjPGraph thys, AjPGraphdata graphdata,
268 				   ajuint num);
269 void          ajGraphAppendTitleC(AjPGraph thys, const char* txt);
270 void          ajGraphAppendTitleS(AjPGraph thys, const AjPStr str);
271 void          ajGraphxyDel (AjPGraph* pmult);
272 void          ajGraphxyDisplay (AjPGraph thys, AjBool closeit );
273 void          ajGraphxySetRanges (AjPGraph thys);
274 AjBool        ajGraphxySetDevicetype (AjPGraph thys, const AjPStr devicetype);
275 void          ajGraphxyShowPointsCircle (AjPGraph thys, AjBool set);
276 void          ajGraphSetFlag (AjPGraph thys, ajint flag, AjBool istrue);
277 void          ajGraphxyShowPointsJoin (AjPGraph thys, AjBool set);
278 void          ajGraphxySetMinmax(AjPGraph thys,float xmin,float xmax,
279 				 float ymin,float ymax);
280 void          ajGraphSetOutfileS (AjPGraph thys, const AjPStr txt);
281 void          ajGraphSetOutfileC (AjPGraph thys, const char *txt);
282 void          ajGraphxySetflagOverlay (AjPGraph thys, AjBool set);
283 
284 void          ajGraphShowSubtitle (AjPGraph thys, AjBool set);
285 void          ajGraphShowTitle (AjPGraph thys, AjBool set);
286 
287 void          ajGraphSetDatanameC(AjPGraph thys, const char *name);
288 void          ajGraphSetDatanameS(AjPGraph thys, const AjPStr name);
289 void          ajGraphSetDescC(AjPGraph thys, const char* txt);
290 void          ajGraphSetDescS(AjPGraph thys, const AjPStr str);
291 
292 void          ajGraphSetOutdirS(AjPGraph thys, const AjPStr str);
293 void          ajGraphSetTitleC(AjPGraph thys, const char *title);
294 void          ajGraphSetTitleS(AjPGraph thys, const AjPStr title);
295 void          ajGraphSetSubtitleC(AjPGraph thys, const char *title);
296 void          ajGraphSetSubtitleS(AjPGraph thys, const AjPStr title);
297 void          ajGraphSetXlabelC(AjPGraph thys, const char *title);
298 void          ajGraphSetXlabelS(AjPGraph thys, const AjPStr title);
299 void          ajGraphSetYlabelC(AjPGraph thys, const char *title);
300 void          ajGraphSetYlabelS(AjPGraph thys, const AjPStr title);
301 
302 void          ajGraphxySetflagGaps(AjPGraph thys, AjBool overlap);
303 
304 void          ajGraphxyShowRaxis(AjPGraph thys, AjBool set);
305 void          ajGraphxyShowUaxis(AjPGraph thys, AjBool set);
306 void          ajGraphxyShowUnum(AjPGraph thys, AjBool set);
307 void          ajGraphxyShowXaxis(AjPGraph thys, AjBool set);
308 void          ajGraphxyShowXlabel(AjPGraph thys, AjBool set);
309 void          ajGraphxyShowXtick(AjPGraph thys, AjBool set);
310 void          ajGraphxyShowYaxis(AjPGraph thys, AjBool set);
311 void          ajGraphxyShowYlabel(AjPGraph thys, AjBool set);
312 void          ajGraphxyShowYnum(AjPGraph thys, AjBool set);
313 void          ajGraphxyShowYtick(AjPGraph thys, AjBool set);
314 
315 void          ajGraphxySetXendF(AjPGraph thys, float val);
316 void          ajGraphxyShowXgrid(AjPGraph thys, AjBool set);
317 void          ajGraphxyShowXinvert(AjPGraph thys, AjBool set);
318 void          ajGraphxySetXrangeII(AjPGraph thys, ajint start, ajint end);
319 void          ajGraphxySetXstartF(AjPGraph thys, float val);
320 void          ajGraphxySetYendF(AjPGraph thys, float val);
321 void          ajGraphxyShowYgrid(AjPGraph thys, AjBool set);
322 void          ajGraphxyShowYinvert(AjPGraph thys, AjBool set);
323 void          ajGraphxySetYrangeII(AjPGraph thys, ajint start, ajint end);
324 void          ajGraphxySetYstartF(AjPGraph thys, float val);
325 
326 AjPGraphdata  ajGraphdataNew (void);
327 AjPGraphdata  ajGraphdataNewI (ajuint numsets);
328 
329 void          ajGraphdataDel(AjPGraphdata *thys);
330 void          ajGraphdataAddposLine (AjPGraphdata graphs,
331 				     float x, float y,
332 				     float x2, float y2, ajint colour);
333 void          ajGraphdataAddposRect (AjPGraphdata graphs,
334 				     float x, float y,
335 				     float x2, float y2,
336 				     ajint colour, ajint fill);
337 void          ajGraphdataAddposTextC (AjPGraphdata graphs,
338 				     float x, float y,
339 				     ajint colour, const char *text);
340 void          ajGraphdataAddposTextS (AjPGraphdata graphs,
341 				     float x, float y,
342 				     ajint colour, const AjPStr str);
343 void          ajGraphdataAddposTextScaleC (AjPGraphdata graphs,
344 					  float x, float y,
345 					  ajint colour, float scale,
346 					  const char *text);
347 void          ajGraphdataAddposTextScaleS (AjPGraphdata graphs,
348 					  float x, float y,
349 					  ajint colour, float scale,
350 					  const AjPStr str);
351 void          ajGraphdataSetMinmax (AjPGraphdata graphdata, float xmin,
352                                     float xmax, float ymin, float ymax);
353 
354 void          ajGraphdataSetTruescale(AjPGraphdata graphdata, float xmin,
355 				     float xmax, float ymin, float ymax);
356 void          ajGraphdataSetTypeC(AjPGraphdata graphdata,
357 				     const char *txt);
358 void          ajGraphdataSetTypeS(AjPGraphdata graphdata,
359 				     const AjPStr str);
360 
361 void          ajGraphdataCalcXY (AjPGraphdata graphdata,
362                                  ajuint numofpoints,
363 				    float start, float incr,
364 				    const float* y);
365 void          ajGraphdataAddXY (AjPGraphdata graphdata,
366                                 const float *x, const float *y);
367 void          ajGraphdataSetDatanameC (AjPGraphdata graphdata,
368 					  const char *title);
369 void          ajGraphdataSetDatanameS (AjPGraphdata graphdata,
370 					  const AjPStr title);
371 void          ajGraphdataSetSubtitleC (AjPGraphdata graphdata,
372 					  const char *title);
373 void          ajGraphdataSetSubtitleS (AjPGraphdata graphdata,
374 					  const AjPStr title);
375 void          ajGraphdataSetTitleC (AjPGraphdata graphdata,
376 				       const char *title);
377 void          ajGraphdataSetTitleS (AjPGraphdata graphdata,
378 				       const AjPStr title);
379 void          ajGraphdataSetXlabelC (AjPGraphdata graphdata,
380 				       const char *title);
381 void          ajGraphdataSetXlabelS (AjPGraphdata graphdata,
382 				       const AjPStr title);
383 void          ajGraphdataSetYlabelC (AjPGraphdata graphdata,
384 				       const char *title);
385 void          ajGraphdataSetYlabelS (AjPGraphdata graphdata,
386 				       const AjPStr title);
387 void          ajGraphdataSetColour (AjPGraphdata graphdata,
388 				       ajint colour);
389 void          ajGraphdataSetLinetype (AjPGraphdata graphdata,
390 					 ajint type);
391 void          ajGraphdataTrace (const AjPGraphdata thys);
392 
393 void          ajGraphicsExit(void);
394 void          ajGraphicsUnused(void);
395 
396 /*
397 ** End of prototype definitions
398 */
399 
400 
401 #ifdef AJ_COMPILE_DEPRECATED_BOOK
402 #endif
403 #ifdef AJ_COMPILE_DEPRECATED
404 
405 __deprecated void          ajGraphPlenv (float xmin, float xmax,
406                                          float ymin, float ymax,
407                                          ajint flags);
408 __deprecated void          ajGraphPrintType(AjPFile outf, AjBool full);
409 __deprecated void          ajGraphDumpDevices (void);
410 __deprecated void          ajGraphxyDumpDevices (void);
411 __deprecated void          ajGraphListDevices (AjPList list);
412 __deprecated void          ajGraphxyListDevices (AjPList list);
413 
414 __deprecated void          ajGraphOpenPlot(AjPGraph thys, ajuint numofsets);
415 __deprecated void          ajGraphOpen (AjPGraph thys, PLFLT xmin, PLFLT xmax,
416                                         PLFLT ymin, PLFLT ymax, ajint flags);
417 __deprecated void          ajGraphClose (void);
418 __deprecated void          ajGraphCloseWin (void);
419 __deprecated void          ajGraphdataAddLine (AjPGraphdata graphs,
420                                                float x, float y,
421                                                float x2, float y2,
422                                                ajint colour);
423 __deprecated void          ajGraphdataAddRect (AjPGraphdata graphs,
424                                                float x, float y,
425                                                float x2, float y2,
426                                                ajint colour, ajint fill);
427 __deprecated void          ajGraphdataSetXY (AjPGraphdata graphdata,
428                                              const float *x, const float *y);
429 __deprecated void          ajGraphdataAddTextScale (AjPGraphdata graphs,
430                                                     float xx1, float yy1,
431                                                     ajint colour, float scale,
432                                                     const char *text);
433 __deprecated void          ajGraphdataAddText (AjPGraphdata graphs,
434                                                float xx1, float yy1,
435                                                ajint colour, const char *text);
436 __deprecated void          ajGraphdataSetMaxima(AjPGraphdata graphdata,
437                                                 float xmin, float xmax,
438                                                 float ymin, float ymax);
439 __deprecated void          ajGraphdataSetMaxMin (AjPGraphdata graphdata,
440                                                  float xmin, float xmax,
441                                                  float ymin, float ymax);
442 
443 __deprecated void          ajGraphdataSetLineType (AjPGraphdata graphdata,
444                                                    ajint type);
445 __deprecated void          ajGraphxySetXinvert(AjPGraph thys, AjBool set);
446 __deprecated void          ajGraphxySetXgrid(AjPGraph thys, AjBool set);
447 __deprecated void          ajGraphxySetGaps(AjPGraph thys, AjBool set);
448 __deprecated void          ajGraphxySetOverLap (AjPGraph thys, AjBool overlap);
449 __deprecated void          ajGraphxySetMaxMin(AjPGraph thys,
450                                               float xmin,float xmax,
451                                               float ymin,float ymax);
452 __deprecated void          ajGraphxySetJoinPoints (AjPGraph thys, AjBool set);
453 __deprecated void          ajGraphxySetCirclePoints (AjPGraph thys, AjBool set);
454 __deprecated void          ajGraphAddText (AjPGraph thys, float xx1, float yy1,
455                                            ajint colour, const char *text);
456 __deprecated void          ajGraphAddTextScale (AjPGraph thys,
457                                                 float xx1, float yy1,
458                                                 ajint colour, float scale,
459                                                 const char *text);
460 __deprecated void          ajGraphxyCheckMaxMin (AjPGraph thys);
461 __deprecated void          ajGraphdataSetXTitleC (AjPGraphdata graphdata,
462                                                   const char *title);
463 __deprecated void          ajGraphdataSetXTitleS (AjPGraphdata graphdata,
464                                                   const AjPStr title);
465 __deprecated void          ajGraphdataSetYTitleC (AjPGraphdata graphdata,
466                                                   const char *title);
467 __deprecated void          ajGraphdataSetYTitleS (AjPGraphdata graphdata,
468                                                   const AjPStr title);
469 __deprecated const char*   ajGraphGetXTitleC(const AjPGraph thys);
470 __deprecated const AjPStr  ajGraphGetXTitleS(const AjPGraph thys);
471 __deprecated const char*   ajGraphGetYTitleC(const AjPGraph thys);
472 __deprecated const AjPStr  ajGraphGetYTitleS(const AjPGraph thys);
473 __deprecated void          ajGraphdataSetSubTitleC (AjPGraphdata graphdata,
474                                                     const char *title);
475 __deprecated void          ajGraphdataSetSubTitleS (AjPGraphdata graphdata,
476                                                     const AjPStr title);
477 __deprecated const char*   ajGraphGetSubTitleC(const AjPGraph thys);
478 __deprecated const AjPStr  ajGraphGetSubTitleS(const AjPGraph thys);
479 __deprecated void          ajGraphdataSetYTitle  (AjPGraphdata graphdata,
480                                                   const AjPStr title);
481 __deprecated void          ajGraphdataSetXTitle  (AjPGraphdata graphdata,
482                                                   const AjPStr title);
483 __deprecated void          ajGraphdataSetTitle  (AjPGraphdata graphdata,
484                                                  const AjPStr title);
485 __deprecated void          ajGraphdataSetSubTitle  (AjPGraphdata graphdata,
486                                                     const AjPStr title);
487 __deprecated const AjPStr  ajGraphGetSubTitle(const AjPGraph thys);
488 __deprecated const AjPStr  ajGraphGetTitle(const AjPGraph thys);
489 __deprecated const AjPStr  ajGraphGetXTitle(const AjPGraph thys);
490 __deprecated const AjPStr  ajGraphGetYTitle(const AjPGraph thys);
491 __deprecated PLFLT         ajGraphTextLength(PLFLT xx1, PLFLT yy1,
492                                              PLFLT xx2, PLFLT yy2,
493                                              const char *text);
494 __deprecated PLFLT         ajGraphTextHeight(PLFLT xx1, PLFLT xx2,
495                                              PLFLT yy1, PLFLT yy2);
496 __deprecated PLFLT         ajGraphFitTextAtline(PLFLT xx1, PLFLT yy1,
497                                                 PLFLT xx2, PLFLT yy2,
498                                                 const char *text,
499                                                 PLFLT TextHeight);
500 __deprecated PLFLT         ajGraphDistPts(PLFLT xx1, PLFLT yy1,
501                                           PLFLT xx2, PLFLT yy2);
502 __deprecated void          ajGraphArrayMaxMin(const float *array,
503                                               ajint npoints,
504                                               float *min, float *max);
505 __deprecated PLFLT         *ajComputeCoord(PLFLT xcentre, PLFLT ycentre,
506                                            PLFLT Radius,  PLFLT Angle);
507 __deprecated ajint         ajGraphicsGetColourFore(void);
508 __deprecated void          ajGraphicsDrawRlabelC(const char *text);
509 __deprecated void          ajGraphicsDrawRlabelS(const AjPStr str);
510 __deprecated void          ajGraphNewPage (AjPGraph thys,
511                                            AjBool resetdefaults);
512 __deprecated void          ajGraphSetTitlePlus(AjPGraph thys,
513                                                const AjPStr title);
514 __deprecated AjBool        ajGraphxySet (AjPGraph thys, const AjPStr type);
515 __deprecated void          ajGraphSetOutputDirS(AjPGraph thys,
516                                                 const AjPStr str);
517 __deprecated void          ajGraphSetOut (AjPGraph thys, const AjPStr txt);
518 __deprecated void          ajGraphSetOutC (AjPGraph thys, const char *txt);
519 __deprecated void          ajGraphSetName (const AjPGraph thys);
520 __deprecated void          ajGraphSetPage(ajuint width, ajuint height);
521 __deprecated AjBool        ajGraphSet (AjPGraph thys, const AjPStr type);
522 __deprecated void          ajGraphSetPenWidth(float width);
523 __deprecated ajint         ajGraphSetFillPat (ajint style);
524 __deprecated ajint         ajGraphSetLineStyle (ajint style);
525 
526 __deprecated void          ajGraphSetDevice(const AjPGraph thys);
527 __deprecated ajint         ajGraphInfo(AjPList* files);
528 __deprecated void          ajGraphGetOut (float *xp,float *yp,
529                                           ajint *xleng, ajint *yleng,
530                                           ajint *xoff, ajint *yoff);
531 __deprecated ajint         ajGraphGetColour(void);
532 __deprecated ajint*        ajGraphGetBaseColour (void);
533 __deprecated ajint*        ajGraphGetBaseColourNuc(const AjPStr codes);
534 __deprecated ajint*        ajGraphGetBaseColourProt(const AjPStr codes);
535 __deprecated float         ajGraphSetCharScale (float scale);
536 __deprecated float         ajGraphSetCharSize(float size);
537 __deprecated void          ajGraphGetCharSize(float *defheight,
538                                               float *currentscale);
539 __deprecated float         ajGraphSetDefCharSize (float size);
540 __deprecated void          ajGraphxySetXBottom (AjPGraph thys, AjBool set);
541 __deprecated void          ajGraphxySetXLabelTop (AjPGraph thys, AjBool set);
542 __deprecated void          ajGraphxySetXTop (AjPGraph thys, AjBool set);
543 __deprecated void          ajGraphxySetXEnd (AjPGraph thys, float val);
544 __deprecated void          ajGraphxySetXGrid (AjPGraph thys, AjBool set);
545 __deprecated void          ajGraphxySetXInvTicks (AjPGraph thys, AjBool set);
546 __deprecated void          ajGraphxySetXLabel (AjPGraph thys, AjBool set);
547 __deprecated void          ajGraphxySetXRangeII (AjPGraph thys,
548                                                  ajint start, ajint end);
549 __deprecated void          ajGraphxySetXStart (AjPGraph thys, float val);
550 __deprecated void          ajGraphxySetYEnd (AjPGraph thys, float val);
551 __deprecated void          ajGraphxySetYGrid (AjPGraph thys, AjBool set);
552 __deprecated void          ajGraphxySetYInvTicks (AjPGraph thys, AjBool set);
553 __deprecated void          ajGraphxySetYStart (AjPGraph thys, float val);
554 __deprecated void          ajGraphxySetYLeft (AjPGraph thys, AjBool set);
555 __deprecated void          ajGraphxySetYLabel (AjPGraph thys, AjBool set);
556 __deprecated void          ajGraphxySetXTick (AjPGraph thys, AjBool set);
557 __deprecated void          ajGraphxySetYLabelLeft (AjPGraph thys, AjBool set);
558 __deprecated void          ajGraphxySetYRangeII (AjPGraph thys,
559                                                  ajint start, ajint end);
560 __deprecated void          ajGraphxySetYTick (AjPGraph thys, AjBool set);
561 __deprecated void          ajGraphxySetYRight(AjPGraph thys, AjBool set);
562 __deprecated void          ajGraphSetDir(AjPGraph thys, const AjPStr txt);
563 __deprecated void          ajGraphSetDesc(AjPGraph thys, const AjPStr title);
564 __deprecated void          ajGraphSetSubTitle (AjPGraph thys,
565                                                const AjPStr title);
566 __deprecated void          ajGraphSetSubTitleC (AjPGraph thys,
567                                                 const char *title);
568 __deprecated void          ajGraphSetXTitle  (AjPGraph thys,
569                                               const AjPStr title);
570 __deprecated void          ajGraphSetXTitleC (AjPGraph thys,
571                                               const char *title);
572 __deprecated void          ajGraphSetYTitle  (AjPGraph thys,
573                                               const AjPStr title);
574 __deprecated void          ajGraphSetYTitleC (AjPGraph thys,
575                                               const char *title);
576 __deprecated void          ajGraphSetSubTitleDo (AjPGraph thys, AjBool set);
577 __deprecated void          ajGraphSetTitleDo (AjPGraph thys, AjBool set);
578 __deprecated void          ajGraphSetTitle (AjPGraph thys, const AjPStr title);
579 __deprecated void          ajGraphLabel (const char *x, const char *y,
580                                          const char *title,
581                                          const char *subtitle);
582 __deprecated void          ajGraphDrawTextOnCurve(PLFLT xcentre, PLFLT ycentre,
583                                                   PLFLT Radius,
584                                                   PLFLT StartAngle,
585                                                   PLFLT EndAngle,
586                                                   const char *Text, PLFLT just);
587 __deprecated void          ajGraphFillRectangleOnCurve(PLFLT xcentre,
588                                                        PLFLT ycentre,
589                                                        PLFLT Radius,
590                                                        PLFLT BoxHeight,
591                                                        PLFLT StartAngle,
592                                                        PLFLT EndAngle);
593 
594 __deprecated void          ajGraphRectangleOnCurve(PLFLT xcentre, PLFLT ycentre,
595                                                    PLFLT Radius,
596                                                    PLFLT BoxHeight,
597                                                    PLFLT StartAngle,
598                                                    PLFLT EndAngle);
599 __deprecated void          ajGraphPartCircle(PLFLT xcentre, PLFLT ycentre,
600                                              PLFLT Radius,
601                                              PLFLT StartAngle, PLFLT EndAngle);
602 __deprecated void          ajGraphBox (PLFLT xx0, PLFLT yy0,PLFLT size);
603 __deprecated void          ajGraphBoxFill (PLFLT xx0, PLFLT yy0, PLFLT size);
604 __deprecated void          ajGraphRectFill (PLFLT xx0, PLFLT yy0,
605                                             PLFLT xx1, PLFLT yy1) ;
606 __deprecated void          ajGraphRect (PLFLT xx0, PLFLT yy0,
607                                         PLFLT xx1, PLFLT yy1) ;
608 __deprecated void          ajGraphLine (PLFLT xx1,PLFLT yy1,
609                                         PLFLT xx2,PLFLT yy2);
610 __deprecated void          ajGraphCircle (PLFLT xcentre, PLFLT ycentre,
611                                           float radius);
612 __deprecated void          ajGraphDia (PLFLT xx0, PLFLT yy0, PLFLT size);
613 __deprecated void          ajGraphDiaFill (PLFLT xx0, PLFLT yy0, PLFLT size);
614 __deprecated void          ajGraphPoly (ajuint n, PLFLT *x, PLFLT *y);
615 __deprecated void          ajGraphPolyFill (ajuint n, PLFLT *x, PLFLT *y);
616 __deprecated void          ajGraphLines (PLFLT *xx1,PLFLT *yy1,
617                                          PLFLT *xx2,PLFLT *yy2,
618                                          ajuint numoflines);
619 __deprecated void          ajGraphTextLine (PLFLT xx1, PLFLT yy1,
620                                             PLFLT xx2, PLFLT yy2,
621                                             const char *text, PLFLT just);
622 __deprecated void          ajGraphTri (PLFLT xx1, PLFLT yy1,
623                                        PLFLT xx2, PLFLT yy2,
624                                        PLFLT x3, PLFLT y3);
625 __deprecated void          ajGraphTriFill (PLFLT xx1, PLFLT yy1,
626                                            PLFLT xx2, PLFLT yy2,
627                                            PLFLT x3, PLFLT y3);
628 __deprecated void          ajGraphDots (PLFLT *xx1,PLFLT *yy1,
629                                         ajuint numofdots);
630 __deprecated void          ajGraphSymbols( ajuint numofdots,
631                                            PLFLT *xx1,PLFLT *yy1,
632                                            ajuint symbol);
633 __deprecated void          ajGraphText (PLFLT xx1, PLFLT yy1,
634                                         const char *text, PLFLT just);
635 __deprecated void          ajGraphTextEnd (PLFLT xx1, PLFLT yy1,
636                                            const char *text);
637 __deprecated void          ajGraphTextMid (PLFLT xx1, PLFLT yy1,
638                                            const char *text);
639 __deprecated void          ajGraphTextStart (PLFLT xx1, PLFLT yy1,
640                                              const char *text);
641 
642 __deprecated void          ajGraphHoriBars (ajuint numofpoints, PLFLT *y,
643                                             PLFLT *xmin, PLFLT *xmax);
644 __deprecated void          ajGraphVertBars (ajuint numofpoints, PLFLT *x,
645                                             PLFLT *ymin, PLFLT *ymax);
646 
647 __deprecated void          ajGraphSetBackBlack (void);
648 __deprecated void          ajGraphSetBackWhite (void);
649 __deprecated void          ajGraphColourBack (void);
650 __deprecated void          ajGraphColourFore(void);
651 __deprecated ajint         ajGraphSetFore (ajint colour);
652 
653 __deprecated void          ajGraphInit (const char *pgm,
654                                         ajint argc, char * const argv[]);
655 __deprecated void          ajGraphInitPV(const char *pgm,
656                                          ajint argc, char * const argv[],
657                                          const char *package,
658                                          const char *packversion);
659 __deprecated void          ajGraphLabelYRight (const char *text);
660 
661 __deprecated void          ajGraphSetOri(ajint ori);
662 
663 __deprecated ajint         ajGraphCheckColour (const AjPStr colour);
664 
665 #endif
666 
667 AJ_END_DECLS
668 
669 #endif  /* !AJGRAPH_H */
670