annotate src/pt-plot.h @ 2124:97a566037a75

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