~jdpipe/ascend/trunk-old

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
/*	ASCEND modelling environment
	Copyright (C) 1990 Thomas Guthrie Epperly, Karl Michael Westerberg
	Copyright (C) 1994 Kirk Andre Abbott, Benjamin Andrew Allan
	Copyright (C) 2006 Carnegie Mellon University

	This program is free software; you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation; either version 2, or (at your option)
	any later version.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with this program.  If not, see <http://www.gnu.org/licenses/>.
*//**
	@file
	This module defines the plot generation auxillaries for Ascend.

	Requires:
	#include "utilities/ascConfig.h"
	#include "compiler/instance_enum.h"
*//*
	Version: $Revision: 1.1 $
	Version control file: $RCSfile: plot.h,v $
	Date last modified: $Date: 1997/07/18 11:47:38 $
	Last modified by: $Author: mthomas $
*/

#ifndef ASC_PLOT_H
#define ASC_PLOT_H

/**	@addtogroup compiler_plot Compiler Plot Generation
	@{
*/

#include <ascend/general/platform.h>

/** Plot types. */
enum PlotTypes {
  PLAIN_PLOT,
  GNU_PLOT,
  XGRAPH_PLOT
};

ASC_DLLSPEC enum PlotTypes g_plot_type;
/**<
 *  These are the plot types recognized by the code in plot.c
 *  Parameterized equivalents are also recognized.
 *  <pre>
 *  MODEL plt_point;
 *      x, y IS_A real;
 *  END plt_point;
 *
 *  MODEL plt_curve;
 *      npnts             IS_A set of integer_constant;
 *      pnt[npnts]        IS_A plt_point;
 *      legend            IS_A symbol; (* or symbol_constant *)
 *  END plt_curve;
 *
 *  MODEL plt_plot_symbol;
 *     curve_set            IS_A set OF symbol_constant;
 *     curve[curve_set]     IS_A plt_curve;
 *
 *     title, XLabel, YLabel IS_A symbol; (* or symbol_constant *)
 *     Xlow,Xhigh,Ylow,Yhigh IS_A real;
 *     Xlog, Ylog IS_A boolean;
 *  END plt_plot_symbol;
 *
 *  MODEL plt_plot_integer;
 *      curve_set                IS_A set of  integer_constant;
 *      curve[curve_set]      IS_A plt_curve;
 *
 *      title, XLabel, YLabel IS_A symbol; (* or symbol_constant *)
 *      Xlow,Xhigh,Ylow,Yhigh IS_A real;
 *      Xlog, Ylog IS_A boolean;
 *  END plt_plot_integer;
 *  </pre>
 *  @todo Support for all the attributes of a plt_plot_*
 *        is good only for xgraph. gnuplot has been neglected.
 */

ASC_DLLSPEC void plot_prepare_file(struct Instance *inst, char *plotfilename);
/**<
 *  Writes data points for the given plot instance to the given plot file.
 */

ASC_DLLSPEC boolean plot_allowed(struct Instance *inst);
/**<
 *  Determines whether or not the given instance is allowed to be plotted
 *  (i.e. whether it is a refinement of plt_plot).
 */

#endif  /* ASCTK_PLOT_H */