annotate src/pt-plot.h @ 4212:8ad52ec4f374

[project @ 2002-12-04 03:50:45 by jwe]
author jwe
date Wed, 04 Dec 2002 03:50:45 +0000
parents 5719210fff4c
children 23d06c9e1edd
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
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
48 #include <SLList.h>
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
49
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
50 #include "dColVector.h"
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
51
1740
fe9d3b2ded26 [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents: 1622
diff changeset
52 #include "pt-cmd.h"
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
53
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
54 class
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
55 tree_plot_command : public tree_command
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
56 {
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
57 public:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
58
1740
fe9d3b2ded26 [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents: 1622
diff changeset
59 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
60 : tree_command (), ndim (nd), range (rng), plot_list (plt) { }
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
61
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
62 ~tree_plot_command (void);
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
63
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
64 void eval (void);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
65
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
66 int num_dimensions (void) { return ndim; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
67
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
68 plot_limits *limits (void) { return range; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
69
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
70 subplot_list *subplots (void) { return plot_list; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
71
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
72 void accept (tree_walker& tw);
581
bc813f5eb025 [project @ 1994-08-07 01:02:15 by jwe]
jwe
parents: 578
diff changeset
73
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
74 private:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
75
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
76 // The number of dimensions. 1 indicates a replot command.
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
77 int ndim;
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
78
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
79 // The data ranges for the plot.
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
80 plot_limits *range;
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
81
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
82 // 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
83 // 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
84 subplot_list *plot_list;
2988
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
85
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
86 // No copying!
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
87
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
88 tree_plot_command (const tree_plot_command&);
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
89
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
90 tree_plot_command& operator = (const tree_plot_command&);
454
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
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
93 class
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
94 plot_limits
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
95 {
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
96 public:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
97
1740
fe9d3b2ded26 [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents: 1622
diff changeset
98 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
99 plot_range *zlim = 0)
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
100 : x_range (xlim), y_range (ylim), z_range (zlim) { }
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
101
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
102 ~plot_limits (void);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
103
4051
b79da8779a0e [project @ 2002-08-17 19:38:32 by jwe]
jwe
parents: 3566
diff changeset
104 void print (int ndim, OSSTREAM& plot_buf);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
105
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
106 plot_range *x_limits (void) { return x_range; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
107 plot_range *y_limits (void) { return y_range; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
108 plot_range *z_limits (void) { return z_range; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
109
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
110 void accept (tree_walker& tw);
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
111
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
112 private:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
113
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
114 // 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
115 // this plot.
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
116 plot_range *x_range;
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
117 plot_range *y_range;
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
118 plot_range *z_range;
2988
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
119
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
120 // No copying!
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
121
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
122 plot_limits (const plot_limits&);
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
123
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
124 plot_limits& operator = (const plot_limits&);
454
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
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
127 class
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
128 plot_range
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
129 {
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
130 public:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
131
1740
fe9d3b2ded26 [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents: 1622
diff changeset
132 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
133 : lower (l), upper (u) { }
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
134
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
135 ~plot_range (void);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
136
4051
b79da8779a0e [project @ 2002-08-17 19:38:32 by jwe]
jwe
parents: 3566
diff changeset
137 void print (OSSTREAM& plot_buf);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
138
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
139 tree_expression *lower_bound (void) { return lower; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
140
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
141 tree_expression *upper_bound (void) { return upper; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
142
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
143 void accept (tree_walker& tw);
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
144
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
145 private:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
146
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
147 // 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
148 // 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
149 tree_expression *lower;
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 454
diff changeset
150 tree_expression *upper;
2988
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
151
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
152 // No copying!
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
153
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
154 plot_range (const plot_range&);
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
155
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
156 plot_range& operator = (const plot_range&);
454
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
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
159 class
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
160 subplot_using
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
161 {
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
162 public:
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
163
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
164 subplot_using (tree_expression *fmt = 0)
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
165 : qual_count (0), scanf_fmt (fmt), val (4, -1)
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
166 {
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
167 x[0] = x[1] = x[2] = x[3] = 0;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
168 }
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
169
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
170 ~subplot_using (void);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
171
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
172 subplot_using *set_format (tree_expression *fmt)
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
173 {
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
174 scanf_fmt = fmt;
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
175 return this;
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
176 }
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
177
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
178 subplot_using *add_qualifier (tree_expression *t)
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
179 {
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
180 if (qual_count < 4)
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
181 x[qual_count] = t;
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
182
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
183 qual_count++;
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
184
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
185 return this;
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
186 }
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
187
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
188 int eval (int ndim, int n_max);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
189
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
190 ColumnVector values (int ndim, int n_max = 0);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
191
4051
b79da8779a0e [project @ 2002-08-17 19:38:32 by jwe]
jwe
parents: 3566
diff changeset
192 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
193
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
194 int qualifier_count (void) { return qual_count; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
195
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
196 tree_expression **qualifiers (void) { return x; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
197
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
198 tree_expression *scanf_format (void) { return scanf_fmt; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
199
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
200 void accept (tree_walker& tw);
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
201
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
202 private:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
203
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
204 // 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
205 // qualifiers).
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
206 int qual_count;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
207
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
208 // 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
209 // not currently used.
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
210 tree_expression *scanf_fmt;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
211
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
212 // 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
213 // in x.
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
214 ColumnVector val;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
215
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
216 // A vector to hold using qualifiers.
491
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 454
diff changeset
217 tree_expression *x[4];
2988
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
218
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
219 // No copying!
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
220
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
221 subplot_using (const subplot_using&);
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
222
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
223 subplot_using& operator = (const subplot_using&);
454
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
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
226 class
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
227 subplot_style
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
228 {
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
229 public:
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
230
3523
b80bbb43a1a9 [project @ 2000-02-02 10:25:52 by jwe]
jwe
parents: 3503
diff changeset
231 subplot_style (const std::string& s = std::string (),
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
232 tree_expression *lt = 0, tree_expression *pt = 0)
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
233 : sp_style (s), sp_linetype (lt), sp_pointtype (pt) { }
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
234
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
235 ~subplot_style (void);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
236
4051
b79da8779a0e [project @ 2002-08-17 19:38:32 by jwe]
jwe
parents: 3566
diff changeset
237 int print (OSSTREAM& plot_buf);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
238
2543
050924aee81a [project @ 1996-11-20 03:03:01 by jwe]
jwe
parents: 2220
diff changeset
239 bool columns_ok (int nc);
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
240
3523
b80bbb43a1a9 [project @ 2000-02-02 10:25:52 by jwe]
jwe
parents: 3503
diff changeset
241 std::string style (void) { return sp_style; }
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
242
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
243 tree_expression *linetype (void) { return sp_linetype; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
244
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
245 tree_expression *pointtype (void) { return sp_pointtype; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
246
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
247 void accept (tree_walker& tw);
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
248
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
249 private:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
250
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
251 // The style we are using: `lines', `points', etc.
3523
b80bbb43a1a9 [project @ 2000-02-02 10:25:52 by jwe]
jwe
parents: 3503
diff changeset
252 std::string sp_style;
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
253
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
254 // The number of the line type to use.
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
255 tree_expression *sp_linetype;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
256
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
257 // The number of the point type to use.
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
258 tree_expression *sp_pointtype;
2988
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
259
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
260 // No copying!
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
261
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
262 subplot_style (const subplot_style&);
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
263
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
264 subplot_style& operator = (const subplot_style&);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
265 };
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
266
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
267 class
3165
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
268 subplot_axes
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
269 {
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
270 public:
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
271
3523
b80bbb43a1a9 [project @ 2000-02-02 10:25:52 by jwe]
jwe
parents: 3503
diff changeset
272 subplot_axes (const std::string& s = std::string ())
3165
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
273 : sp_axes (s) { }
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
274
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
275 ~subplot_axes (void) { }
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
276
4051
b79da8779a0e [project @ 2002-08-17 19:38:32 by jwe]
jwe
parents: 3566
diff changeset
277 int print (OSSTREAM& plot_buf);
3165
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
278
3523
b80bbb43a1a9 [project @ 2000-02-02 10:25:52 by jwe]
jwe
parents: 3503
diff changeset
279 std::string axes (void) { return sp_axes; }
3165
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
280
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
281 void accept (tree_walker& tw);
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
282
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
283 private:
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
284
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
285 // The axes we are using: `x1y1', `x1y2', etc.
3523
b80bbb43a1a9 [project @ 2000-02-02 10:25:52 by jwe]
jwe
parents: 3503
diff changeset
286 std::string sp_axes;
3165
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
287
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
288 // No copying!
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
289
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
290 subplot_axes (const subplot_axes&);
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
291
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
292 subplot_axes& operator = (const subplot_axes&);
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
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
295 class
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
296 subplot
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
297 {
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
298 public:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
299
1740
fe9d3b2ded26 [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents: 1622
diff changeset
300 subplot (tree_expression *data = 0)
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
301 : 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
302 sp_style_clause (0), sp_axes_clause (0) { }
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
303
878
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
304 ~subplot (void);
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
305
3165
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
306 subplot *add_data (tree_expression *data)
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
307 {
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
308 sp_plot_data = data;
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
309 return this;
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
310 }
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
311
3165
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
312 subplot *add_clause (subplot_using *u)
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
313 {
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
314 if (! sp_using_clause)
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
315 {
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
316 sp_using_clause = u;
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
317 return this;
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
318 }
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
319 else
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
320 return 0;
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
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
323 subplot *add_clause (tree_expression *t)
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
324 {
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
325 if (! sp_title_clause)
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
326 {
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
327 sp_title_clause = t;
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
328 return this;
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
329 }
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
330 else
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
331 return 0;
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
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
334 subplot *add_clause (subplot_style *s)
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
335 {
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
336 if (! sp_style_clause)
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
337 {
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
338 sp_style_clause = s;
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
339 return this;
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
340 }
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
341 else
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
342 return 0;
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
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
345 subplot *add_clause (subplot_axes *a)
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
346 {
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
347 if (! sp_axes_clause)
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
348 {
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
349 sp_axes_clause = a;
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
350 return this;
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
351 }
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
352 else
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
353 return 0;
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
354 }
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
355
2086
bfb775fb6fe8 [project @ 1996-04-25 05:55:19 by jwe]
jwe
parents: 1996
diff changeset
356 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
357
4051
b79da8779a0e [project @ 2002-08-17 19:38:32 by jwe]
jwe
parents: 3566
diff changeset
358 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
359
4051
b79da8779a0e [project @ 2002-08-17 19:38:32 by jwe]
jwe
parents: 3566
diff changeset
360 int print (int ndim, OSSTREAM& plot_buf);
878
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
361
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
362 tree_expression *plot_data (void) { return sp_plot_data; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
363
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
364 subplot_using *using_clause (void) { return sp_using_clause; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
365
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
366 tree_expression *title_clause (void) { return sp_title_clause; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
367
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
368 subplot_style *style_clause (void) { return sp_style_clause; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
369
3165
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
370 subplot_axes *axes_clause (void) { return sp_axes_clause; }
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
371
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
372 void accept (tree_walker& tw);
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
373
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
374 private:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
375
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
376 // The data to plot.
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
377 tree_expression *sp_plot_data;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
378
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
379 // The `using' option
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
380 subplot_using *sp_using_clause;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
381
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
382 // The `title' option
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
383 tree_expression *sp_title_clause;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
384
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
385 // The `style' option
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
386 subplot_style *sp_style_clause;
2988
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
387
3165
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
388 // The `axes' option
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
389 subplot_axes *sp_axes_clause;
e4bbfc196e53 [project @ 1998-04-16 03:01:47 by jwe]
jwe
parents: 2988
diff changeset
390
2988
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
391 // No copying!
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
392
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
393 subplot (const subplot&);
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
394
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
395 subplot& operator = (const subplot&);
578
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
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
398 class
4212
8ad52ec4f374 [project @ 2002-12-04 03:50:45 by jwe]
jwe
parents: 4192
diff changeset
399 subplot_list
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
400 {
1740
fe9d3b2ded26 [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents: 1622
diff changeset
401 public:
878
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
402
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
403 subplot_list (void)
4212
8ad52ec4f374 [project @ 2002-12-04 03:50:45 by jwe]
jwe
parents: 4192
diff changeset
404 : lst () { }
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
405
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
406 subplot_list (subplot *t)
4212
8ad52ec4f374 [project @ 2002-12-04 03:50:45 by jwe]
jwe
parents: 4192
diff changeset
407 : lst () { lst.append (t); }
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
408
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
409 ~subplot_list (void);
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
410
4212
8ad52ec4f374 [project @ 2002-12-04 03:50:45 by jwe]
jwe
parents: 4192
diff changeset
411 void append (subplot *&s) { lst.append (s); }
8ad52ec4f374 [project @ 2002-12-04 03:50:45 by jwe]
jwe
parents: 4192
diff changeset
412 void append (subplot * const &s) { lst.append (s); }
8ad52ec4f374 [project @ 2002-12-04 03:50:45 by jwe]
jwe
parents: 4192
diff changeset
413
8ad52ec4f374 [project @ 2002-12-04 03:50:45 by jwe]
jwe
parents: 4192
diff changeset
414 subplot *&operator () (Pix p) { return lst (p); }
8ad52ec4f374 [project @ 2002-12-04 03:50:45 by jwe]
jwe
parents: 4192
diff changeset
415
8ad52ec4f374 [project @ 2002-12-04 03:50:45 by jwe]
jwe
parents: 4192
diff changeset
416 subplot * const &operator () (Pix p) const { return lst (p); }
8ad52ec4f374 [project @ 2002-12-04 03:50:45 by jwe]
jwe
parents: 4192
diff changeset
417
8ad52ec4f374 [project @ 2002-12-04 03:50:45 by jwe]
jwe
parents: 4192
diff changeset
418 Pix first (void) const { return lst.first (); }
8ad52ec4f374 [project @ 2002-12-04 03:50:45 by jwe]
jwe
parents: 4192
diff changeset
419
8ad52ec4f374 [project @ 2002-12-04 03:50:45 by jwe]
jwe
parents: 4192
diff changeset
420 void next (Pix& p) const { return lst.next (p); }
8ad52ec4f374 [project @ 2002-12-04 03:50:45 by jwe]
jwe
parents: 4192
diff changeset
421
4051
b79da8779a0e [project @ 2002-08-17 19:38:32 by jwe]
jwe
parents: 3566
diff changeset
422 int print (int ndim, OSSTREAM& plot_buf);
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
423
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
424 void accept (tree_walker& tw);
2988
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 private:
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
427
4212
8ad52ec4f374 [project @ 2002-12-04 03:50:45 by jwe]
jwe
parents: 4192
diff changeset
428 // The list of subplot commands.
8ad52ec4f374 [project @ 2002-12-04 03:50:45 by jwe]
jwe
parents: 4192
diff changeset
429 SLList<subplot *> lst;
8ad52ec4f374 [project @ 2002-12-04 03:50:45 by jwe]
jwe
parents: 4192
diff changeset
430
2988
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
431 // No copying!
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
432
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
433 subplot_list (const subplot_list&);
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
434
daa1ed1f5462 [project @ 1997-05-16 07:23:15 by jwe]
jwe
parents: 2907
diff changeset
435 subplot_list& operator = (const subplot_list&);
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
436 };
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
437
3523
b80bbb43a1a9 [project @ 2000-02-02 10:25:52 by jwe]
jwe
parents: 3503
diff changeset
438 extern std::string save_in_tmp_file (octave_value& t, int ndim = 2,
1827
effa9400766f [project @ 1996-02-02 14:07:51 by jwe]
jwe
parents: 1755
diff changeset
439 bool parametric = false);
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 499
diff changeset
440
3523
b80bbb43a1a9 [project @ 2000-02-02 10:25:52 by jwe]
jwe
parents: 3503
diff changeset
441 extern void mark_for_deletion (const std::string&);
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 499
diff changeset
442
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 499
diff changeset
443 extern void cleanup_tmp_files (void);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 499
diff changeset
444
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 499
diff changeset
445 extern void close_plot_stream (void);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 499
diff changeset
446
3523
b80bbb43a1a9 [project @ 2000-02-02 10:25:52 by jwe]
jwe
parents: 3503
diff changeset
447 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
448
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
449 #endif
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
450
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
451 /*
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
452 ;;; Local Variables: ***
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
453 ;;; mode: C++ ***
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
454 ;;; End: ***
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
455 */