annotate src/pt-plot.h @ 4839:c1cdf2a32cdb ss-2-1-57

[project @ 2004-03-12 19:38:50 by jwe]
author jwe
date Fri, 12 Mar 2004 19:38:50 +0000
parents bdaa0d3dfc0b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
1 /*
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
2
2847
8b262e771614 [project @ 1997-03-27 16:18:26 by jwe]
jwe
parents: 2543
diff changeset
3 Copyright (C) 1996, 1997 John W. Eaton
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
4
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
5 This file is part of Octave.
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
6
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
7 Octave is free software; you can redistribute it and/or modify it
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
8 under the terms of the GNU General Public License as published by the
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
9 Free Software Foundation; either version 2, or (at your option) any
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
10 later version.
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
11
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
12 Octave is distributed in the hope that it will be useful, but WITHOUT
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
15 for more details.
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
16
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
18 along with Octave; see the file COPYING. If not, write to the Free
1315
611d403c7f3d [project @ 1995-06-25 19:56:32 by jwe]
jwe
parents: 1297
diff changeset
19 Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
20
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
21 */
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
22
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
23 #if !defined (octave_tree_plot_h)
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
24 #define octave_tree_plot_h 1
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
25
4192
5719210fff4c [project @ 2002-11-20 16:56:47 by jwe]
jwe
parents: 4066
diff changeset
26 #if defined (__GNUG__) && defined (USE_PRAGMA_INTERFACE_IMPLEMENTATION)
1297
12ecc2ecf0e3 [project @ 1995-05-01 18:39:43 by jwe]
jwe
parents: 1227
diff changeset
27 #pragma interface
12ecc2ecf0e3 [project @ 1995-05-01 18:39:43 by jwe]
jwe
parents: 1227
diff changeset
28 #endif
12ecc2ecf0e3 [project @ 1995-05-01 18:39:43 by jwe]
jwe
parents: 1227
diff changeset
29
3503
d14c483b3c12 [project @ 2000-02-01 04:06:07 by jwe]
jwe
parents: 3165
diff changeset
30 #include <iostream>
4051
b79da8779a0e [project @ 2002-08-17 19:38:32 by jwe]
jwe
parents: 3566
diff changeset
31
b79da8779a0e [project @ 2002-08-17 19:38:32 by jwe]
jwe
parents: 3566
diff changeset
32 #include "lo-sstream.h"
581
bc813f5eb025 [project @ 1994-08-07 01:02:15 by jwe]
jwe
parents: 578
diff changeset
33
2878
55cca18e943a [project @ 1997-04-24 09:19:43 by jwe]
jwe
parents: 2847
diff changeset
34 class tree_expression;
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
35 class tree_plot_command;
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
36 class plot_limits;
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
37 class plot_range;
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
38 class subplot_using;
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
39 class subplot_style;
3165
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
40 class subplot_axes;
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
41 class subplot;
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
42 class subplot_list;
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
43
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
44 class tree_walker;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
45
1745
fa3e6cf13745 [project @ 1996-01-13 07:33:24 by jwe]
jwe
parents: 1740
diff changeset
46 #include <string>
fa3e6cf13745 [project @ 1996-01-13 07:33:24 by jwe]
jwe
parents: 1740
diff changeset
47
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
48 #include "dColVector.h"
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
49
4219
23d06c9e1edd [project @ 2002-12-06 21:29:17 by jwe]
jwe
parents: 4212
diff changeset
50 #include "base-list.h"
1740
fe9d3b2ded26 [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents: 1622
diff changeset
51 #include "pt-cmd.h"
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
52
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
53 class
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
54 tree_plot_command : public tree_command
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
55 {
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
56 public:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
57
1740
fe9d3b2ded26 [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents: 1622
diff changeset
58 tree_plot_command (subplot_list *plt = 0, plot_limits *rng = 0, int nd = 0)
fe9d3b2ded26 [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents: 1622
diff changeset
59 : tree_command (), ndim (nd), range (rng), plot_list (plt) { }
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
60
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
61 ~tree_plot_command (void);
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
62
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
63 void eval (void);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
64
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
65 int num_dimensions (void) { return ndim; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
66
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
67 plot_limits *limits (void) { return range; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
68
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
69 subplot_list *subplots (void) { return plot_list; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
70
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
71 void accept (tree_walker& tw);
581
bc813f5eb025 [project @ 1994-08-07 01:02:15 by jwe]
jwe
parents: 578
diff changeset
72
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
73 private:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
74
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
75 // The number of dimensions. 1 indicates a replot command.
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
76 int ndim;
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
77
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
78 // The data ranges for the plot.
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
79 plot_limits *range;
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
80
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
81 // The list of plots for this plot command. For example, the
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
82 // command "plot sin(x), cos(x)" has two subplot commands.
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
83 subplot_list *plot_list;
2988
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
84
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
85 // No copying!
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
86
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
87 tree_plot_command (const tree_plot_command&);
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
88
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
89 tree_plot_command& operator = (const tree_plot_command&);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
90 };
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
91
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
92 class
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
93 plot_limits
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
94 {
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
95 public:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
96
1740
fe9d3b2ded26 [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents: 1622
diff changeset
97 plot_limits (plot_range *xlim = 0, plot_range *ylim = 0,
fe9d3b2ded26 [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents: 1622
diff changeset
98 plot_range *zlim = 0)
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
99 : x_range (xlim), y_range (ylim), z_range (zlim) { }
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
100
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
101 ~plot_limits (void);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
102
4051
b79da8779a0e [project @ 2002-08-17 19:38:32 by jwe]
jwe
parents: 3566
diff changeset
103 void print (int ndim, OSSTREAM& plot_buf);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
104
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
105 plot_range *x_limits (void) { return x_range; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
106 plot_range *y_limits (void) { return y_range; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
107 plot_range *z_limits (void) { return z_range; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
108
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
109 void accept (tree_walker& tw);
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
110
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
111 private:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
112
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
113 // Specified limits of the x, y, and z axes we should display for
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
114 // this plot.
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
115 plot_range *x_range;
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
116 plot_range *y_range;
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
117 plot_range *z_range;
2988
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
118
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
119 // No copying!
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
120
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
121 plot_limits (const plot_limits&);
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
122
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
123 plot_limits& operator = (const plot_limits&);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
124 };
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
125
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
126 class
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
127 plot_range
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
128 {
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
129 public:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
130
1740
fe9d3b2ded26 [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents: 1622
diff changeset
131 plot_range (tree_expression *l = 0, tree_expression *u = 0)
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
132 : lower (l), upper (u) { }
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
133
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
134 ~plot_range (void);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
135
4051
b79da8779a0e [project @ 2002-08-17 19:38:32 by jwe]
jwe
parents: 3566
diff changeset
136 void print (OSSTREAM& plot_buf);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
137
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
138 tree_expression *lower_bound (void) { return lower; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
139
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
140 tree_expression *upper_bound (void) { return upper; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
141
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
142 void accept (tree_walker& tw);
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
143
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
144 private:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
145
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
146 // A range can specify a lower or upper bound or both. If neither
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
147 // is specified, the range to display is determined from the data.
491
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 454
diff changeset
148 tree_expression *lower;
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 454
diff changeset
149 tree_expression *upper;
2988
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
150
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
151 // No copying!
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
152
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
153 plot_range (const plot_range&);
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
154
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
155 plot_range& operator = (const plot_range&);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
156 };
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
157
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
158 class
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
159 subplot_using
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
160 {
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
161 public:
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
162
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
163 subplot_using (tree_expression *fmt = 0)
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
164 : qual_count (0), scanf_fmt (fmt), val (4, -1)
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
165 {
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
166 x[0] = x[1] = x[2] = x[3] = 0;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
167 }
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
168
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
169 ~subplot_using (void);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
170
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
171 subplot_using *set_format (tree_expression *fmt)
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
172 {
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
173 scanf_fmt = fmt;
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
174 return this;
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
175 }
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
176
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
177 subplot_using *add_qualifier (tree_expression *t)
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
178 {
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
179 if (qual_count < 4)
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
180 x[qual_count] = t;
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
181
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
182 qual_count++;
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
183
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
184 return this;
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
185 }
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
186
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
187 int eval (int ndim, int n_max);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
188
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
189 ColumnVector values (int ndim, int n_max = 0);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
190
4051
b79da8779a0e [project @ 2002-08-17 19:38:32 by jwe]
jwe
parents: 3566
diff changeset
191 int print (int ndim, int n_max, OSSTREAM& plot_buf);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
192
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
193 int qualifier_count (void) { return qual_count; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
194
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
195 tree_expression **qualifiers (void) { return x; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
196
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
197 tree_expression *scanf_format (void) { return scanf_fmt; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
198
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
199 void accept (tree_walker& tw);
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
200
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
201 private:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
202
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
203 // The number of using qualifiers (in "using 1:2", 1 and 2 are the
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
204 // qualifiers).
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
205 int qual_count;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
206
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
207 // An optional scanf-style format. This is parsed and stored but
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
208 // not currently used.
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
209 tree_expression *scanf_fmt;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
210
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
211 // This is a cache for evaluated versions of the qualifiers stored
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
212 // in x.
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
213 ColumnVector val;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
214
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
215 // A vector to hold using qualifiers.
491
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 454
diff changeset
216 tree_expression *x[4];
2988
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
217
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
218 // No copying!
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
219
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
220 subplot_using (const subplot_using&);
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
221
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
222 subplot_using& operator = (const subplot_using&);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
223 };
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
224
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
225 class
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
226 subplot_style
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
227 {
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
228 public:
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
229
3523
b80bbb43a1a9 [project @ 2000-02-02 10:25:52 by jwe]
jwe
parents: 3503
diff changeset
230 subplot_style (const std::string& s = std::string (),
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
231 tree_expression *lt = 0, tree_expression *pt = 0)
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
232 : sp_style (s), sp_linetype (lt), sp_pointtype (pt) { }
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
233
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
234 ~subplot_style (void);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
235
4051
b79da8779a0e [project @ 2002-08-17 19:38:32 by jwe]
jwe
parents: 3566
diff changeset
236 int print (OSSTREAM& plot_buf);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
237
2543
050924aee81a [project @ 1996-11-20 03:03:01 by jwe]
jwe
parents: 2220
diff changeset
238 bool columns_ok (int nc);
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
239
3523
b80bbb43a1a9 [project @ 2000-02-02 10:25:52 by jwe]
jwe
parents: 3503
diff changeset
240 std::string style (void) { return sp_style; }
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
241
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
242 tree_expression *linetype (void) { return sp_linetype; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
243
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
244 tree_expression *pointtype (void) { return sp_pointtype; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
245
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
246 void accept (tree_walker& tw);
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
247
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
248 private:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
249
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
250 // The style we are using: `lines', `points', etc.
3523
b80bbb43a1a9 [project @ 2000-02-02 10:25:52 by jwe]
jwe
parents: 3503
diff changeset
251 std::string sp_style;
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
252
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
253 // The number of the line type to use.
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
254 tree_expression *sp_linetype;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
255
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
256 // The number of the point type to use.
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
257 tree_expression *sp_pointtype;
2988
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
258
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
259 // No copying!
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
260
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
261 subplot_style (const subplot_style&);
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
262
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
263 subplot_style& operator = (const subplot_style&);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
264 };
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
265
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
266 class
3165
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
267 subplot_axes
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
268 {
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
269 public:
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
270
3523
b80bbb43a1a9 [project @ 2000-02-02 10:25:52 by jwe]
jwe
parents: 3503
diff changeset
271 subplot_axes (const std::string& s = std::string ())
3165
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
272 : sp_axes (s) { }
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
273
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
274 ~subplot_axes (void) { }
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
275
4051
b79da8779a0e [project @ 2002-08-17 19:38:32 by jwe]
jwe
parents: 3566
diff changeset
276 int print (OSSTREAM& plot_buf);
3165
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
277
3523
b80bbb43a1a9 [project @ 2000-02-02 10:25:52 by jwe]
jwe
parents: 3503
diff changeset
278 std::string axes (void) { return sp_axes; }
3165
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
279
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
280 void accept (tree_walker& tw);
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
281
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
282 private:
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
283
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
284 // The axes we are using: `x1y1', `x1y2', etc.
3523
b80bbb43a1a9 [project @ 2000-02-02 10:25:52 by jwe]
jwe
parents: 3503
diff changeset
285 std::string sp_axes;
3165
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
286
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
287 // No copying!
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
288
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
289 subplot_axes (const subplot_axes&);
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
290
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
291 subplot_axes& operator = (const subplot_axes&);
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
292 };
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
293
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
294 class
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
295 subplot
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
296 {
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
297 public:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
298
1740
fe9d3b2ded26 [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents: 1622
diff changeset
299 subplot (tree_expression *data = 0)
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
300 : sp_plot_data (data), sp_using_clause (0), sp_title_clause (0),
3165
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
301 sp_style_clause (0), sp_axes_clause (0) { }
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
302
878
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
303 ~subplot (void);
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
304
3165
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
305 subplot *add_data (tree_expression *data)
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
306 {
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
307 sp_plot_data = data;
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
308 return this;
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
309 }
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
310
3165
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
311 subplot *add_clause (subplot_using *u)
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
312 {
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
313 if (! sp_using_clause)
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
314 {
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
315 sp_using_clause = u;
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
316 return this;
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
317 }
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
318 else
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
319 return 0;
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
320 }
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
321
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
322 subplot *add_clause (tree_expression *t)
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
323 {
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
324 if (! sp_title_clause)
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
325 {
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
326 sp_title_clause = t;
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
327 return this;
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
328 }
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
329 else
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
330 return 0;
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
331 }
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
332
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
333 subplot *add_clause (subplot_style *s)
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
334 {
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
335 if (! sp_style_clause)
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
336 {
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
337 sp_style_clause = s;
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
338 return this;
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
339 }
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
340 else
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
341 return 0;
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
342 }
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
343
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
344 subplot *add_clause (subplot_axes *a)
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
345 {
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
346 if (! sp_axes_clause)
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
347 {
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
348 sp_axes_clause = a;
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
349 return this;
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
350 }
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
351 else
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
352 return 0;
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
353 }
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
354
2086
bfb775fb6fe8 [project @ 1996-04-25 05:55:19 by jwe]
jwe
parents: 1996
diff changeset
355 octave_value extract_plot_data (int ndim, octave_value& data);
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
356
4051
b79da8779a0e [project @ 2002-08-17 19:38:32 by jwe]
jwe
parents: 3566
diff changeset
357 int handle_plot_data (int ndim, OSSTREAM& plot_buf);
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
358
4051
b79da8779a0e [project @ 2002-08-17 19:38:32 by jwe]
jwe
parents: 3566
diff changeset
359 int print (int ndim, OSSTREAM& plot_buf);
878
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
360
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
361 tree_expression *plot_data (void) { return sp_plot_data; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
362
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
363 subplot_using *using_clause (void) { return sp_using_clause; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
364
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
365 tree_expression *title_clause (void) { return sp_title_clause; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
366
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
367 subplot_style *style_clause (void) { return sp_style_clause; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
368
3165
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
369 subplot_axes *axes_clause (void) { return sp_axes_clause; }
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
370
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
371 void accept (tree_walker& tw);
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
372
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
373 private:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
374
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
375 // The data to plot.
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
376 tree_expression *sp_plot_data;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
377
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
378 // The `using' option
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
379 subplot_using *sp_using_clause;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
380
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
381 // The `title' option
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
382 tree_expression *sp_title_clause;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
383
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
384 // The `style' option
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
385 subplot_style *sp_style_clause;
2988
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
386
3165
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
387 // The `axes' option
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
388 subplot_axes *sp_axes_clause;
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
389
2988
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
390 // No copying!
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
391
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
392 subplot (const subplot&);
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
393
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
394 subplot& operator = (const subplot&);
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
395 };
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
396
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
397 class
4219
23d06c9e1edd [project @ 2002-12-06 21:29:17 by jwe]
jwe
parents: 4212
diff changeset
398 subplot_list : public octave_base_list<subplot *>
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
399 {
1740
fe9d3b2ded26 [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents: 1622
diff changeset
400 public:
878
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
401
4219
23d06c9e1edd [project @ 2002-12-06 21:29:17 by jwe]
jwe
parents: 4212
diff changeset
402 subplot_list (void) { }
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
403
4219
23d06c9e1edd [project @ 2002-12-06 21:29:17 by jwe]
jwe
parents: 4212
diff changeset
404 subplot_list (subplot *t) { append (t); }
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
405
4219
23d06c9e1edd [project @ 2002-12-06 21:29:17 by jwe]
jwe
parents: 4212
diff changeset
406 ~subplot_list (void)
23d06c9e1edd [project @ 2002-12-06 21:29:17 by jwe]
jwe
parents: 4212
diff changeset
407 {
23d06c9e1edd [project @ 2002-12-06 21:29:17 by jwe]
jwe
parents: 4212
diff changeset
408 while (! empty ())
23d06c9e1edd [project @ 2002-12-06 21:29:17 by jwe]
jwe
parents: 4212
diff changeset
409 {
23d06c9e1edd [project @ 2002-12-06 21:29:17 by jwe]
jwe
parents: 4212
diff changeset
410 iterator p = begin ();
23d06c9e1edd [project @ 2002-12-06 21:29:17 by jwe]
jwe
parents: 4212
diff changeset
411 delete *p;
23d06c9e1edd [project @ 2002-12-06 21:29:17 by jwe]
jwe
parents: 4212
diff changeset
412 erase (p);
23d06c9e1edd [project @ 2002-12-06 21:29:17 by jwe]
jwe
parents: 4212
diff changeset
413 }
23d06c9e1edd [project @ 2002-12-06 21:29:17 by jwe]
jwe
parents: 4212
diff changeset
414 }
4212
8ad52ec4f374 [project @ 2002-12-04 03:50:45 by jwe]
jwe
parents: 4192
diff changeset
415
4051
b79da8779a0e [project @ 2002-08-17 19:38:32 by jwe]
jwe
parents: 3566
diff changeset
416 int print (int ndim, OSSTREAM& plot_buf);
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
417
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
418 void accept (tree_walker& tw);
2988
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
419
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
420 private:
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
421
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
422 // No copying!
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
423
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
424 subplot_list (const subplot_list&);
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
425
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
426 subplot_list& operator = (const subplot_list&);
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
427 };
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
428
4261
bdaa0d3dfc0b [project @ 2003-01-02 22:55:23 by jwe]
jwe
parents: 4219
diff changeset
429 extern std::string save_in_tmp_file (const octave_value& t, int ndim = 2,
bdaa0d3dfc0b [project @ 2003-01-02 22:55:23 by jwe]
jwe
parents: 4219
diff changeset
430 bool parametric = false);
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 499
diff changeset
431
3523
b80bbb43a1a9 [project @ 2000-02-02 10:25:52 by jwe]
jwe
parents: 3503
diff changeset
432 extern void mark_for_deletion (const std::string&);
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 499
diff changeset
433
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 499
diff changeset
434 extern void cleanup_tmp_files (void);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 499
diff changeset
435
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 499
diff changeset
436 extern void close_plot_stream (void);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 499
diff changeset
437
3523
b80bbb43a1a9 [project @ 2000-02-02 10:25:52 by jwe]
jwe
parents: 3503
diff changeset
438 extern void do_external_plotter_cd (const std::string& newdir);
1328
ec2ab864e8eb [project @ 1995-08-22 22:32:34 by jwe]
jwe
parents: 1315
diff changeset
439
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
440 #endif
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
441
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
442 /*
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
443 ;;; Local Variables: ***
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
444 ;;; mode: C++ ***
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
445 ;;; End: ***
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
446 */