annotate src/pt-plot.cc @ 524:2814c75c8398

[project @ 1994-07-20 18:36:24 by jwe]
author jwe
date Wed, 20 Jul 1994 18:39:18 +0000
parents 2d7f9d72170c
children b15c1fafec84
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1 // tree-plot.cc -*- C++ -*-
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
2 /*
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
3
322
d93ab6bf48d7 [project @ 1994-02-02 04:30:42 by jwe]
jwe
parents: 240
diff changeset
4 Copyright (C) 1992, 1993, 1994 John W. Eaton
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
5
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
6 This file is part of Octave.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
7
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
8 Octave is free software; you can redistribute it and/or modify it
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
9 under the terms of the GNU General Public License as published by the
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
10 Free Software Foundation; either version 2, or (at your option) any
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
11 later version.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
12
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
13 Octave is distributed in the hope that it will be useful, but WITHOUT
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
16 for more details.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
17
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
18 You should have received a copy of the GNU General Public License
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
19 along with Octave; see the file COPYING. If not, write to the Free
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
20 Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
21
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
22 */
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
23
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
24 #ifdef HAVE_CONFIG_H
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
25 #include "config.h"
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
26 #endif
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
27
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
28 #if defined (__GNUG__)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
29 #pragma implementation
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
30 #endif
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
31
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
32 #include <sys/types.h>
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
33 #ifdef HAVE_UNISTD_H
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
34 #include <unistd.h>
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
35 #endif
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
36 #include <iostream.h>
86
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
37 #include <fstream.h>
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
38 #include <strstream.h>
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
39
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
40 #include "SLStack.h"
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
41 #include "procstream.h"
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
42
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
43 #include "user-prefs.h"
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
44 #include "tree-const.h"
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
45 #include "tree-plot.h"
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
46 #include "error.h"
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
47 #include "utils.h"
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
48 #include "tree.h"
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
49 #include "defun.h"
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
50
87
8248ec41f677 [project @ 1993-09-06 05:03:36 by jwe]
jwe
parents: 86
diff changeset
51 extern "C"
8248ec41f677 [project @ 1993-09-06 05:03:36 by jwe]
jwe
parents: 86
diff changeset
52 {
8248ec41f677 [project @ 1993-09-06 05:03:36 by jwe]
jwe
parents: 86
diff changeset
53 char *tilde_expand (char *s); /* From readline's tilde.c */
8248ec41f677 [project @ 1993-09-06 05:03:36 by jwe]
jwe
parents: 86
diff changeset
54 }
8248ec41f677 [project @ 1993-09-06 05:03:36 by jwe]
jwe
parents: 86
diff changeset
55
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
56 // The number of lines we\'ve plotted so far.
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
57 int plot_line_count;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
58
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
59 // Is this a parametric plot? Makes a difference for 3D plotting.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
60 int parametric_plot = 0;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
61
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
62 // Should the graph window be cleared before plotting the next line?
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
63 int clear_before_plotting = 1;
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
64
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
65 // List of files to delete when we exit or crash.
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
66 static SLStack <char *> tmp_files;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
67
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
68 // Pipe to gnuplot.
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
69 static oprocstream plot_stream;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
70
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
71 /*
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
72 * Plotting, eh?
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
73 */
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
74
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
75 tree_plot_command::tree_plot_command (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
76 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
77 range = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
78 plot_list = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
79 ndim = 0;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
80 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
81
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
82 tree_plot_command::tree_plot_command (tree_subplot_list *plt, int nd)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
83 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
84 range = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
85 plot_list = plt;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
86 ndim = nd;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
87 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
88
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
89 tree_plot_command::tree_plot_command (tree_subplot_list *plt,
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
90 tree_plot_limits *rng, int nd)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
91 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
92 range = rng;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
93 plot_list = plt;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
94 ndim = nd;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
95 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
96
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
97 tree_plot_command::~tree_plot_command (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
98 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
99 delete range;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
100 delete plot_list;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
101 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
102
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
103 tree_constant
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
104 tree_plot_command::eval (int print)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
105 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
106 tree_constant retval;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
107
143
7849db4b6dbc [project @ 1993-10-04 02:36:45 by jwe]
jwe
parents: 134
diff changeset
108 if (error_state)
7849db4b6dbc [project @ 1993-10-04 02:36:45 by jwe]
jwe
parents: 134
diff changeset
109 return retval;
7849db4b6dbc [project @ 1993-10-04 02:36:45 by jwe]
jwe
parents: 134
diff changeset
110
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
111 ostrstream plot_buf;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
112
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
113 switch (ndim)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
114 {
476
de9de43ad21f [project @ 1994-06-24 16:17:47 by jwe]
jwe
parents: 452
diff changeset
115 case 1:
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
116 if (plot_line_count == 0)
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
117 {
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
118 if (plot_list)
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
119 plot_buf << "plot";
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
120 else
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
121 {
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
122 ::error ("replot: must have something to plot");
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
123 return retval;
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
124 }
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
125 }
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
126 else
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
127 plot_buf << "replot";
476
de9de43ad21f [project @ 1994-06-24 16:17:47 by jwe]
jwe
parents: 452
diff changeset
128 break;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
129 case 2:
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
130 if (clear_before_plotting || plot_line_count == 0)
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
131 {
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
132 plot_line_count = 0;
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
133 plot_buf << "plot";
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
134 }
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
135 else
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
136 plot_buf << "replot";
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
137 break;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
138 case 3:
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
139 {
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
140 plot_line_count = 0;
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
141 plot_buf << "splot";
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
142 }
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
143 break;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
144 default:
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
145 panic_impossible ();
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
146 break;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
147 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
148
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
149 if (range)
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
150 {
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
151 if (plot_line_count == 0)
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
152 range->print (ndim, plot_buf);
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
153 else
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
154 warning ("can't specify new plot ranges with `replot' or while\
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
155 hold is on");
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
156 }
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
157
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
158 if (error_state)
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
159 return retval;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
160
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
161 for (tree_subplot_list *ptr = plot_list; ptr; ptr = ptr->next_elem ())
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
162 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
163 plot_line_count++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
164
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
165 if (ptr != plot_list)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
166 plot_buf << ",\\\n ";
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
167
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
168 int status = ptr->print (ndim, plot_buf);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
169 if (status < 0)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
170 return retval;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
171 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
172
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
173 plot_buf << "\n" << ends;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
174
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
175 // Just testing...
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
176 // char *message = plot_buf.str ();
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
177 // cout << "[*]" << message << "[*]\n";
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
178
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
179 if (parametric_plot && ndim == 2)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
180 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
181 warning ("can't make 2D parametric plot -- setting noparametric...");
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
182 send_to_plot_stream ("set noparametric\n");
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
183 char *message = plot_buf.str ();
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
184 send_to_plot_stream (message);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
185 delete [] message;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
186 send_to_plot_stream ("set parametric\n");
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
187 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
188 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
189 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
190 char *message = plot_buf.str ();
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
191 send_to_plot_stream (message);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
192 delete [] message;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
193 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
194
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
195 return retval;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
196 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
197
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
198 tree_subplot_list::tree_subplot_list (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
199 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
200 plot_data = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
201 using = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
202 title = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
203 style = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
204 next = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
205 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
206
491
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 478
diff changeset
207 tree_subplot_list::tree_subplot_list (tree_expression *data)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
208 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
209 plot_data = data;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
210 using = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
211 title = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
212 style = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
213 next = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
214 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
215
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
216 tree_subplot_list::tree_subplot_list (tree_subplot_list *t)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
217 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
218 plot_data = t->plot_data;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
219 using = t->using;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
220 title = t->title;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
221 style = t->style;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
222 next = t->next;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
223 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
224
491
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 478
diff changeset
225 tree_subplot_list::tree_subplot_list (tree_subplot_using *u,
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 478
diff changeset
226 tree_expression *t,
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
227 tree_subplot_style *s)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
228 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
229 plot_data = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
230 using = u;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
231 title = t;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
232 style = s;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
233 next = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
234 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
235
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
236 tree_subplot_list::~tree_subplot_list (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
237 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
238 delete plot_data;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
239 delete using;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
240 delete title;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
241 delete style;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
242 delete next;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
243 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
244
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
245 tree_subplot_list *
491
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 478
diff changeset
246 tree_subplot_list::set_data (tree_expression *data)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
247 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
248 plot_data = data;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
249 return this;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
250 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
251
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
252 tree_subplot_list *
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
253 tree_subplot_list::chain (tree_subplot_list *t)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
254 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
255 tree_subplot_list *tmp = new tree_subplot_list (t);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
256 tmp->next = this;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
257 return tmp;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
258 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
259
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
260 tree_subplot_list *
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
261 tree_subplot_list::reverse (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
262 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
263 tree_subplot_list *list = this;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
264 tree_subplot_list *next;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
265 tree_subplot_list *prev = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
266
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
267 while (list)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
268 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
269 next = list->next;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
270 list->next = prev;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
271 prev = list;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
272 list = next;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
273 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
274 return prev;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
275 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
276
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
277 tree_subplot_list *
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
278 tree_subplot_list::next_elem (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
279 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
280 return next;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
281 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
282
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
283 tree_constant
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
284 tree_subplot_list::eval (int print)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
285 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
286 return plot_data->eval (0);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
287 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
288
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
289 int
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
290 tree_subplot_list::print (int ndim, ostrstream& plot_buf)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
291 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
292 int nc = 0;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
293 if (plot_data)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
294 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
295 tree_constant data = plot_data->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
296 if (! error_state && data.is_defined ())
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
297 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
298 char *file = 0;
86
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
299 if (data.is_string_type ())
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
300 {
87
8248ec41f677 [project @ 1993-09-06 05:03:36 by jwe]
jwe
parents: 86
diff changeset
301 file = tilde_expand (data.string_value ());
86
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
302 ifstream ftmp (file);
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
303 if (ftmp)
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
304 {
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
305 plot_buf << " \"" << file << '"';
87
8248ec41f677 [project @ 1993-09-06 05:03:36 by jwe]
jwe
parents: 86
diff changeset
306 free (file);
134
4e753587fac1 [project @ 1993-09-29 16:15:02 by jwe]
jwe
parents: 87
diff changeset
307 goto have_existing_file_or_command;
86
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
308 }
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
309 else
87
8248ec41f677 [project @ 1993-09-06 05:03:36 by jwe]
jwe
parents: 86
diff changeset
310 {
8248ec41f677 [project @ 1993-09-06 05:03:36 by jwe]
jwe
parents: 86
diff changeset
311 free (file);
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
312 file = 0;
134
4e753587fac1 [project @ 1993-09-29 16:15:02 by jwe]
jwe
parents: 87
diff changeset
313
4e753587fac1 [project @ 1993-09-29 16:15:02 by jwe]
jwe
parents: 87
diff changeset
314 // Opening as a file failed. Let's try passing it along as a plot
4e753587fac1 [project @ 1993-09-29 16:15:02 by jwe]
jwe
parents: 87
diff changeset
315 // command.
4e753587fac1 [project @ 1993-09-29 16:15:02 by jwe]
jwe
parents: 87
diff changeset
316 plot_buf << " " << data.string_value ();
4e753587fac1 [project @ 1993-09-29 16:15:02 by jwe]
jwe
parents: 87
diff changeset
317 goto have_existing_file_or_command;
87
8248ec41f677 [project @ 1993-09-06 05:03:36 by jwe]
jwe
parents: 86
diff changeset
318 }
86
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
319 }
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
320
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
321 nc = data.columns ();
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
322 switch (ndim)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
323 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
324 case 2:
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
325 file = save_in_tmp_file (data, ndim);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
326 break;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
327 case 3:
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
328 file = save_in_tmp_file (data, ndim, parametric_plot);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
329 break;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
330 default:
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
331 panic_impossible ();
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
332 break;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
333 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
334
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
335 if (file)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
336 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
337 mark_for_deletion (file);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
338 plot_buf << " \"" << file << '"';
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
339 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
340 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
341 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
342 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
343 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
344 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
345 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
346
134
4e753587fac1 [project @ 1993-09-29 16:15:02 by jwe]
jwe
parents: 87
diff changeset
347 have_existing_file_or_command:
86
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
348
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
349 if (using)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
350 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
351 int status = using->print (ndim, nc, plot_buf);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
352 if (status < 0)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
353 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
354 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
355
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
356 if (title)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
357 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
358 tree_constant tmp = title->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
359 if (! error_state && tmp.is_string_type ())
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
360 plot_buf << " title " << '"' << tmp.string_value () << '"';
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
361 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
362 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
363 warning ("line title must be a string");
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
364 plot_buf << " title " << '"' << "line " << plot_line_count << '"';
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
365 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
366 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
367 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
368 plot_buf << " title " << '"' << "line " << plot_line_count << '"';
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
369
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
370 if (style)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
371 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
372 int status = style->print (plot_buf);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
373 if (status < 0)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
374 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
375 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
376
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
377 return 0;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
378 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
379
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
380 tree_plot_limits::tree_plot_limits (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
381 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
382 x_range = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
383 y_range = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
384 z_range = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
385 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
386
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
387 tree_plot_limits::tree_plot_limits (tree_plot_range *xlim)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
388 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
389 x_range = xlim;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
390 y_range = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
391 z_range = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
392 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
393
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
394 tree_plot_limits::tree_plot_limits (tree_plot_range *xlim,
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
395 tree_plot_range *ylim)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
396 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
397 x_range = xlim;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
398 y_range = ylim;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
399 z_range = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
400 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
401
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
402 tree_plot_limits::tree_plot_limits (tree_plot_range *xlim,
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
403 tree_plot_range *ylim,
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
404 tree_plot_range *zlim)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
405 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
406 x_range = xlim;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
407 y_range = ylim;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
408 z_range = zlim;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
409 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
410
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
411 tree_plot_limits::~tree_plot_limits (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
412 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
413 delete x_range;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
414 delete y_range;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
415 delete z_range;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
416 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
417
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
418 tree_constant
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
419 tree_plot_limits::eval (int print)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
420 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
421 tree_constant retval;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
422 return retval;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
423 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
424
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
425 void
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
426 tree_plot_limits::print (int ndim, ostrstream& plot_buf)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
427 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
428 if (ndim == 2 || ndim == 3)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
429 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
430 if (x_range)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
431 x_range->print (plot_buf);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
432 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
433 return;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
434
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
435 if (y_range)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
436 y_range->print (plot_buf);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
437 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
438 return;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
439 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
440
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
441 if (ndim == 3 && z_range)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
442 z_range->print (plot_buf);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
443 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
444
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
445 tree_plot_range::tree_plot_range (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
446 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
447 lower = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
448 upper = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
449 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
450
491
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 478
diff changeset
451 tree_plot_range::tree_plot_range (tree_expression *l, tree_expression *u)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
452 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
453 lower = l;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
454 upper = u;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
455 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
456
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
457 tree_plot_range::~tree_plot_range (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
458 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
459 delete lower;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
460 delete upper;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
461 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
462
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
463 tree_constant
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
464 tree_plot_range::eval (int print)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
465 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
466 tree_constant retval;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
467 return retval;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
468 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
469
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
470 void
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
471 tree_plot_range::print (ostrstream& plot_buf)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
472 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
473 plot_buf << " [";
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
474
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
475 if (lower)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
476 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
477 tree_constant lower_val = lower->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
478 if (error_state)
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
479 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
480 ::error ("evaluating lower bound of plot range");
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
481 return;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
482 }
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
483 else
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
484 {
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
485 double lo = lower_val.to_scalar ();
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
486 plot_buf << lo;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
487 }
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
488 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
489
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
490 plot_buf << ":";
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
491
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
492 if (upper)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
493 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
494 tree_constant upper_val = upper->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
495 if (error_state)
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
496 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
497 ::error ("evaluating upper bound of plot range");
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
498 return;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
499 }
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
500 else
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
501 {
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
502 double hi = upper_val.to_scalar ();
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
503 plot_buf << hi;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
504 }
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
505 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
506
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
507 plot_buf << "]";
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
508 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
509
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
510 tree_subplot_using::tree_subplot_using (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
511 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
512 qualifier_count = 0;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
513 x[0] = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
514 x[1] = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
515 x[2] = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
516 x[3] = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
517 scanf_fmt = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
518 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
519
491
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 478
diff changeset
520 tree_subplot_using::tree_subplot_using (tree_expression *fmt)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
521 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
522 qualifier_count = 0;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
523 x[0] = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
524 x[1] = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
525 x[2] = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
526 x[3] = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
527 scanf_fmt = fmt;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
528 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
529
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
530 tree_subplot_using::~tree_subplot_using (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
531 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
532 delete scanf_fmt;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
533 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
534
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
535 tree_subplot_using *
491
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 478
diff changeset
536 tree_subplot_using::set_format (tree_expression *fmt)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
537 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
538 scanf_fmt = fmt;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
539 return this;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
540 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
541
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
542 tree_subplot_using *
491
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 478
diff changeset
543 tree_subplot_using::add_qualifier (tree_expression *t)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
544 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
545 if (qualifier_count < 4)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
546 x[qualifier_count] = t;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
547
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
548 qualifier_count++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
549
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
550 return this;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
551 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
552
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
553 tree_constant
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
554 tree_subplot_using::eval (int print)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
555 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
556 tree_constant retval;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
557 return retval;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
558 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
559
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
560 int
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
561 tree_subplot_using::print (int ndim, int n_max, ostrstream& plot_buf)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
562 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
563 if ((ndim == 2 && qualifier_count > 4)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
564 || (ndim == 3 && qualifier_count > 3))
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
565 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
566
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
567 for (int i = 0; i < qualifier_count; i++)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
568 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
569 if (x[i])
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
570 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
571 tree_constant tmp = x[i]->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
572 if (error_state)
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
573 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
574 ::error ("evaluating plot using command");
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
575 return -1;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
576 }
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
577
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
578 double val;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
579 if (tmp.is_defined ())
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
580 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
581 val = tmp.to_scalar ();
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
582 if (i == 0)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
583 plot_buf << " using ";
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
584 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
585 plot_buf << ":";
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
586
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
587 int n = NINT (val);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
588
322
d93ab6bf48d7 [project @ 1994-02-02 04:30:42 by jwe]
jwe
parents: 240
diff changeset
589 if (n < 1 || n_max > 0 && n > n_max)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
590 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
591 ::error ("using: column %d out of range", n);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
592 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
593 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
594 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
595 plot_buf << n;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
596 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
597 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
598 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
599 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
600 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
601 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
602 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
603
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
604 if (scanf_fmt)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
605 warning ("ignoring scanf format in plot command");
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
606
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
607 return 0;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
608 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
609
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
610 tree_subplot_style::tree_subplot_style (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
611 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
612 style = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
613 linetype = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
614 pointtype = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
615 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
616
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
617 tree_subplot_style::tree_subplot_style (char *s)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
618 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
619 style = strsave (s);
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
620 linetype = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
621 pointtype = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
622 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
623
491
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 478
diff changeset
624 tree_subplot_style::tree_subplot_style (char *s, tree_expression *lt)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
625 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
626 style = strsave (s);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
627 linetype = lt;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
628 pointtype = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
629 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
630
491
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 478
diff changeset
631 tree_subplot_style::tree_subplot_style (char *s, tree_expression *lt,
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 478
diff changeset
632 tree_expression *pt)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
633 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
634 style = strsave (s);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
635 linetype = lt;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
636 pointtype = pt;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
637 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
638
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
639 tree_subplot_style::~tree_subplot_style (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
640 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
641 delete [] style;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
642 delete linetype;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
643 delete pointtype;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
644 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
645
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
646 tree_constant
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
647 tree_subplot_style::eval (int print)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
648 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
649 tree_constant retval;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
650 return retval;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
651 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
652
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
653 int
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
654 tree_subplot_style::print (ostrstream& plot_buf)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
655 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
656 if (style)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
657 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
658 plot_buf << " with " << style;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
659
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
660 if (linetype)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
661 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
662 tree_constant tmp = linetype->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
663 if (! error_state && tmp.is_defined ())
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
664 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
665 double val = tmp.to_scalar ();
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
666 plot_buf << " " << NINT (val);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
667 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
668 else
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
669 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
670 ::error ("evaluating plot style command");
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
671 return -1;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
672 }
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
673 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
674
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
675 if (pointtype)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
676 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
677 tree_constant tmp = pointtype->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
678 if (! error_state && tmp.is_defined ())
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
679 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
680 double val = tmp.to_scalar ();
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
681 plot_buf << " " << NINT (val);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
682 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
683 else
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
684 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
685 ::error ("evaluating plot style command");
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
686 return -1;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
687 }
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
688 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
689 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
690 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
691 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
692
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
693 return 0;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
694 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
695
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
696 char *
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
697 save_in_tmp_file (tree_constant& t, int ndim, int parametric)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
698 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
699 char *name = strsave (tmpnam (0));
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
700 if (name)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
701 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
702 ofstream file (name);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
703 if (file)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
704 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
705 switch (ndim)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
706 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
707 case 2:
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
708 t.save (file);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
709 break;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
710 case 3:
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
711 t.save_three_d (file, parametric);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
712 break;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
713 default:
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
714 panic_impossible ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
715 break;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
716 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
717 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
718 else
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
719 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
720 error ("couldn't open temporary output file `%s'", name);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
721 delete [] name;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
722 name = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
723 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
724 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
725 return name;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
726 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
727
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
728 void
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
729 mark_for_deletion (const char *filename)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
730 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
731 char *tmp = strsave (filename);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
732 tmp_files.push (tmp);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
733 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
734
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
735 void
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
736 cleanup_tmp_files (void)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
737 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
738 while (! tmp_files.empty ())
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
739 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
740 char *filename = tmp_files.pop ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
741 unlink (filename);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
742 delete [] filename;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
743 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
744 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
745
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
746 int
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
747 send_to_plot_stream (const char *cmd)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
748 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
749 // From sighandlers.cc:
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
750 extern int pipe_handler_error_count;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
751
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
752 static int initialized = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
753
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
754 if (! plot_stream.is_open ())
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
755 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
756 plot_line_count = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
757
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
758 char *plot_prog = user_pref.gnuplot_binary;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
759 if (plot_prog)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
760 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
761 plot_stream.open (plot_prog);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
762 if (! plot_stream.is_open ())
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
763 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
764 warning ("plot: unable to open pipe to `%s'",
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
765 plot_prog);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
766
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
767 if (strcmp (plot_prog, "gnuplot") != 0)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
768 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
769 warning ("having trouble finding plotting program.");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
770 warning ("trying again with `gnuplot'");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
771 goto last_chance;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
772 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
773 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
774 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
775 else
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
776 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
777 last_chance:
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
778
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
779 plot_stream.open ("gnuplot");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
780
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
781 if (! plot_stream.is_open ())
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
782 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
783 error ("plot: unable to open pipe to `%s'", plot_prog);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
784 return -1;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
785 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
786 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
787 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
788
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
789 if (! initialized)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
790 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
791 initialized = 1;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
792 plot_stream << "set data style lines\n";
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
793 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
794
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
795 plot_stream << cmd;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
796 plot_stream.flush ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
797 pipe_handler_error_count = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
798
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
799 return 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
800 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
801
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
802 void
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
803 close_plot_stream (void)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
804 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
805 if (plot_stream.is_open ())
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
806 plot_stream.close ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
807
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
808 plot_line_count = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
809 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
810
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
811 DEFUN ("closeplot", Fcloseplot, Scloseplot, 1, 0,
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
812 "closeplot (): close the stream to plotter")
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
813 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
814 Octave_object retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
815 close_plot_stream ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
816 return retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
817 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
818
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
819 DEFUN_TEXT ("hold", Fhold, Shold, -1, 1,
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
820 "hold [on|off]\n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
821 \n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
822 determine whether the plot window is cleared before the next line is\n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
823 drawn. With no argument, toggle the current state.")
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
824 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
825 Octave_object retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
826
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
827 DEFINE_ARGV("hold");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
828
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
829 switch (argc)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
830 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
831 case 1:
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
832 clear_before_plotting = ! clear_before_plotting;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
833 break;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
834 case 2:
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
835 if (strcasecmp (argv[1], "on") == 0)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
836 clear_before_plotting = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
837 else if (strcasecmp (argv[1], "off") == 0)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
838 clear_before_plotting = 1;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
839 else
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
840 print_usage ("hold");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
841 break;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
842 default:
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
843 print_usage ("hold");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
844 break;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
845 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
846
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
847 DELETE_ARGV;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
848
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
849 return retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
850 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
851
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
852 DEFUN ("purge_tmp_files", Fpurge_tmp_files, Spurge_tmp_files, 5, 1,
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
853 "delete temporary data files used for plotting")
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
854 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
855 Octave_object retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
856 cleanup_tmp_files ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
857 return retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
858 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
859
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
860 DEFUN_TEXT ("set", Fset, Sset, -1, 1,
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
861 "set [options]\n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
862 \n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
863 set plotting options")
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
864 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
865 Octave_object retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
866
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
867 DEFINE_ARGV("set");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
868
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
869 ostrstream plot_buf;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
870
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
871 if (argc > 1)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
872 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
873 if (almost_match ("parametric", argv[1], 3))
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
874 parametric_plot = 1;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
875 else if (almost_match ("noparametric", argv[1], 5))
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
876 parametric_plot = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
877 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
878
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
879 for (int i = 0; i < argc; i++)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
880 plot_buf << argv[i] << " ";
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
881
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
882 plot_buf << "\n" << ends;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
883
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
884 char *plot_command = plot_buf.str ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
885 send_to_plot_stream (plot_command);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
886
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
887 delete [] plot_command;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
888
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
889 DELETE_ARGV;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
890
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
891 return retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
892 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
893
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
894 /*
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
895 * Set plotting options.
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
896 */
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
897 DEFUN_TEXT ("show", Fshow, Sshow, -1, 1,
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
898 "show [options]\n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
899 \n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
900 show plotting options")
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
901 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
902 Octave_object retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
903
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
904 DEFINE_ARGV("show");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
905
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
906 ostrstream plot_buf;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
907
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
908 for (int i = 0; i < argc; i++)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
909 plot_buf << argv[i] << " ";
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
910
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
911 plot_buf << "\n" << ends;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
912
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
913 char *plot_command = plot_buf.str ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
914 send_to_plot_stream (plot_command);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
915
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
916 delete [] plot_command;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
917
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
918 DELETE_ARGV;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
919
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
920 return retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
921 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
922
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
923 /*
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
924 ;;; Local Variables: ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
925 ;;; mode: C++ ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
926 ;;; page-delimiter: "^/\\*" ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
927 ;;; End: ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
928 */