annotate src/pt-plot.h @ 2220:fd8d48295891

[project @ 1996-05-17 06:55:07 by jwe]
author jwe
date Fri, 17 May 1996 06:55:07 +0000
parents ceaecd0967f3
children 050924aee81a
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
1827
effa9400766f [project @ 1996-02-02 14:07:51 by jwe]
jwe
parents: 1755
diff changeset
3 Copyright (C) 1996 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
1297
12ecc2ecf0e3 [project @ 1995-05-01 18:39:43 by jwe]
jwe
parents: 1227
diff changeset
26 #if defined (__GNUG__)
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
1740
fe9d3b2ded26 [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents: 1622
diff changeset
30 class ostream;
fe9d3b2ded26 [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents: 1622
diff changeset
31 class ostrstream;
581
bc813f5eb025 [project @ 1994-08-07 01:02:15 by jwe]
jwe
parents: 578
diff changeset
32
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 499
diff changeset
33 class tree_command;
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
34 class tree_plot_command;
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
35 class plot_limits;
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
36 class plot_range;
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
37 class subplot_using;
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
38 class subplot_style;
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
39 class subplot;
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
40 class subplot_list;
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
41
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
42 class tree_walker;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
43
2220
fd8d48295891 [project @ 1996-05-17 06:55:07 by jwe]
jwe
parents: 2175
diff changeset
44 #include <csignal>
fd8d48295891 [project @ 1996-05-17 06:55:07 by jwe]
jwe
parents: 2175
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
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
52 #include "idx-vector.h"
1740
fe9d3b2ded26 [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents: 1622
diff changeset
53 #include "pt-cmd.h"
fe9d3b2ded26 [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents: 1622
diff changeset
54 #include "pt-exp.h"
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
55
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
56 class
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
57 tree_plot_command : public tree_command
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
58 {
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
59 public:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
60
1740
fe9d3b2ded26 [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents: 1622
diff changeset
61 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
62 : tree_command (), ndim (nd), range (rng), plot_list (plt) { }
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
63
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
64 ~tree_plot_command (void);
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
65
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
66 void eval (void);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
67
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
68 int num_dimensions (void) { return ndim; }
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 plot_limits *limits (void) { return range; }
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 subplot_list *subplots (void) { return plot_list; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
73
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
74 void accept (tree_walker& tw);
581
bc813f5eb025 [project @ 1994-08-07 01:02:15 by jwe]
jwe
parents: 578
diff changeset
75
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
76 private:
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 number of dimensions. 1 indicates a replot command.
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
79 int ndim;
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 data ranges for the plot.
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
82 plot_limits *range;
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
83
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
84 // 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
85 // 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
86 subplot_list *plot_list;
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
87 };
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
88
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
89 class
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
90 plot_limits
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
91 {
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
92 public:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
93
1740
fe9d3b2ded26 [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents: 1622
diff changeset
94 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
95 plot_range *zlim = 0)
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
96 : x_range (xlim), y_range (ylim), z_range (zlim) { }
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
97
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
98 ~plot_limits (void);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
99
1827
effa9400766f [project @ 1996-02-02 14:07:51 by jwe]
jwe
parents: 1755
diff changeset
100 void print (int ndim, ostrstream& plot_buf);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
101
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
102 plot_range *x_limits (void) { return x_range; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
103 plot_range *y_limits (void) { return y_range; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
104 plot_range *z_limits (void) { return z_range; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
105
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
106 void accept (tree_walker& tw);
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
107
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
108 private:
2124
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 // 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
111 // this plot.
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
112 plot_range *x_range;
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
113 plot_range *y_range;
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
114 plot_range *z_range;
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
115 };
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
116
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
117 class
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
118 plot_range
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
119 {
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
120 public:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
121
1740
fe9d3b2ded26 [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents: 1622
diff changeset
122 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
123 : lower (l), upper (u) { }
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
124
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
125 ~plot_range (void);
454
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 void print (ostrstream& plot_buf);
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
128
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
129 tree_expression *lower_bound (void) { return lower; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
130
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
131 tree_expression *upper_bound (void) { return upper; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
132
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
133 void accept (tree_walker& tw);
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
134
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
135 private:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
136
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
137 // 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
138 // 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
139 tree_expression *lower;
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 454
diff changeset
140 tree_expression *upper;
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
141 };
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
142
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
143 class
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
144 subplot_using
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
145 {
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
146 public:
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
147
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
148 subplot_using (tree_expression *fmt = 0)
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
149 : qual_count (0), scanf_fmt (fmt), val (4, -1)
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
150 {
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
151 x[0] = x[1] = x[2] = x[3] = 0;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
152 }
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
153
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
154 ~subplot_using (void);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
155
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
156 subplot_using *set_format (tree_expression *fmt)
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
157 {
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
158 scanf_fmt = fmt;
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
159 return this;
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
160 }
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
161
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
162 subplot_using *add_qualifier (tree_expression *t)
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 if (qual_count < 4)
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
165 x[qual_count] = t;
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
166
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
167 qual_count++;
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
168
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
169 return this;
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
170 }
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
171
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
172 int eval (int ndim, int n_max);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
173
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
174 ColumnVector values (int ndim, int n_max = 0);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
175
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
176 int print (int ndim, int n_max, ostrstream& plot_buf);
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
177
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
178 int qualifier_count (void) { return qual_count; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
179
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
180 tree_expression **qualifiers (void) { return x; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
181
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
182 tree_expression *scanf_format (void) { return scanf_fmt; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
183
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
184 void accept (tree_walker& tw);
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
185
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
186 private:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
187
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
188 // 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
189 // qualifiers).
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
190 int qual_count;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
191
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
192 // 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
193 // not currently used.
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
194 tree_expression *scanf_fmt;
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 // 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
197 // in x.
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
198 ColumnVector val;
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 // A vector to hold using qualifiers.
491
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 454
diff changeset
201 tree_expression *x[4];
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
202 };
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
203
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
204 class
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
205 subplot_style
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
206 {
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
207 public:
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
208
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
209 subplot_style (const string& s = string (),
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
210 tree_expression *lt = 0, tree_expression *pt = 0)
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
211 : sp_style (s), sp_linetype (lt), sp_pointtype (pt) { }
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
212
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
213 ~subplot_style (void);
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
214
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
215 int print (ostrstream& plot_buf);
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
216
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
217 int errorbars (void);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
218
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
219 string style (void) { return sp_style; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
220
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
221 tree_expression *linetype (void) { return sp_linetype; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
222
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
223 tree_expression *pointtype (void) { return sp_pointtype; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
224
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
225 void accept (tree_walker& tw);
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
226
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
227 private:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
228
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
229 // The style we are using: `lines', `points', etc.
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
230 string sp_style;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
231
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
232 // The number of the line type to use.
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
233 tree_expression *sp_linetype;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
234
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
235 // The number of the point type to use.
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
236 tree_expression *sp_pointtype;
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
237 };
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
238
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
239 class
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
240 subplot
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
241 {
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
242 public:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
243
1740
fe9d3b2ded26 [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents: 1622
diff changeset
244 subplot (tree_expression *data = 0)
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
245 : sp_plot_data (data), sp_using_clause (0), sp_title_clause (0),
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
246 sp_style_clause (0) { }
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
247
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
248 subplot (subplot_using *u, tree_expression *t, subplot_style *s)
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
249 : sp_plot_data (0), sp_using_clause (u), sp_title_clause (t),
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
250 sp_style_clause (s) { }
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
251
878
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
252 ~subplot (void);
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
253
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
254 subplot *set_data (tree_expression *data)
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
255 {
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
256 sp_plot_data = data;
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
257 return this;
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
258 }
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
259
2086
bfb775fb6fe8 [project @ 1996-04-25 05:55:19 by jwe]
jwe
parents: 1996
diff changeset
260 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
261
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
262 int handle_plot_data (int ndim, ostrstream& plot_buf);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 596
diff changeset
263
878
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
264 int print (int ndim, ostrstream& plot_buf);
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
265
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
266 tree_expression *plot_data (void) { return sp_plot_data; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
267
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
268 subplot_using *using_clause (void) { return sp_using_clause; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
269
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
270 tree_expression *title_clause (void) { return sp_title_clause; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
271
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
272 subplot_style *style_clause (void) { return sp_style_clause; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
273
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
274 void accept (tree_walker& tw);
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
275
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
276 private:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
277
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
278 // The data to plot.
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
279 tree_expression *sp_plot_data;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
280
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
281 // The `using' option
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
282 subplot_using *sp_using_clause;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
283
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
284 // The `title' option
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
285 tree_expression *sp_title_clause;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
286
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
287 // The `style' option
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
288 subplot_style *sp_style_clause;
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
289 };
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
290
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
291 class
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
292 subplot_list : public SLList<subplot *>
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
293 {
1740
fe9d3b2ded26 [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents: 1622
diff changeset
294 public:
878
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
295
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
296 subplot_list (void)
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
297 : SLList<subplot *> () { }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
298
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
299 subplot_list (subplot *t)
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
300 : SLList<subplot *> () { append (t); }
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
301
1622
2aed00132ba2 [project @ 1995-11-06 17:36:48 by jwe]
jwe
parents: 1328
diff changeset
302 ~subplot_list (void);
593
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
303
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
304 int print (int ndim, ostrstream& plot_buf);
6f948c6251a9 [project @ 1994-08-09 04:29:10 by jwe]
jwe
parents: 584
diff changeset
305
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
306 void accept (tree_walker& tw);
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
307 };
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 524
diff changeset
308
2086
bfb775fb6fe8 [project @ 1996-04-25 05:55:19 by jwe]
jwe
parents: 1996
diff changeset
309 extern 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
310 bool parametric = false);
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 499
diff changeset
311
1745
fa3e6cf13745 [project @ 1996-01-13 07:33:24 by jwe]
jwe
parents: 1740
diff changeset
312 extern void mark_for_deletion (const string&);
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 499
diff changeset
313
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 499
diff changeset
314 extern void cleanup_tmp_files (void);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 499
diff changeset
315
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 499
diff changeset
316 extern void close_plot_stream (void);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 499
diff changeset
317
1755
3a9462b655f1 [project @ 1996-01-22 04:47:22 by jwe]
jwe
parents: 1745
diff changeset
318 extern void do_external_plotter_cd (const string& newdir);
1328
ec2ab864e8eb [project @ 1995-08-22 22:32:34 by jwe]
jwe
parents: 1315
diff changeset
319
2175
ceaecd0967f3 [project @ 1996-05-13 16:15:35 by jwe]
jwe
parents: 2124
diff changeset
320 extern void symbols_of_pt_plot (void);
ceaecd0967f3 [project @ 1996-05-13 16:15:35 by jwe]
jwe
parents: 2124
diff changeset
321
454
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
322 #endif
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
323
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
324 /*
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
325 ;;; Local Variables: ***
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
326 ;;; mode: C++ ***
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
327 ;;; End: ***
94cc7b5fc789 [project @ 1994-06-06 00:15:43 by jwe]
jwe
parents:
diff changeset
328 */