annotate src/pt-plot.cc @ 543:b15c1fafec84

[project @ 1994-07-22 04:55:14 by jwe]
author jwe
date Fri, 22 Jul 1994 04:55:26 +0000
parents 2814c75c8398
children d169be9237fb
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"
543
b15c1fafec84 [project @ 1994-07-22 04:55:14 by jwe]
jwe
parents: 524
diff changeset
46 #include "help.h"
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
47 #include "error.h"
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
48 #include "utils.h"
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
49 #include "tree.h"
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
50 #include "defun.h"
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
51
87
8248ec41f677 [project @ 1993-09-06 05:03:36 by jwe]
jwe
parents: 86
diff changeset
52 extern "C"
8248ec41f677 [project @ 1993-09-06 05:03:36 by jwe]
jwe
parents: 86
diff changeset
53 {
8248ec41f677 [project @ 1993-09-06 05:03:36 by jwe]
jwe
parents: 86
diff changeset
54 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
55 }
8248ec41f677 [project @ 1993-09-06 05:03:36 by jwe]
jwe
parents: 86
diff changeset
56
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
57 // 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
58 int plot_line_count;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
59
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
60 // 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
61 int parametric_plot = 0;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
62
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
63 // 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
64 int clear_before_plotting = 1;
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
65
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
66 // 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
67 static SLStack <char *> tmp_files;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
68
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
69 // Pipe to gnuplot.
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
70 static oprocstream plot_stream;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
71
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
72 /*
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
73 * Plotting, eh?
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
76 tree_plot_command::tree_plot_command (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
77 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
78 range = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
79 plot_list = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
80 ndim = 0;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
83 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
84 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
85 range = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
86 plot_list = plt;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
87 ndim = nd;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
90 tree_plot_command::tree_plot_command (tree_subplot_list *plt,
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
91 tree_plot_limits *rng, int nd)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
92 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
93 range = rng;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
94 plot_list = plt;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
95 ndim = nd;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
98 tree_plot_command::~tree_plot_command (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
99 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
100 delete range;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
101 delete plot_list;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
104 tree_constant
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
105 tree_plot_command::eval (int print)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
106 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
107 tree_constant retval;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
108
143
7849db4b6dbc [project @ 1993-10-04 02:36:45 by jwe]
jwe
parents: 134
diff changeset
109 if (error_state)
7849db4b6dbc [project @ 1993-10-04 02:36:45 by jwe]
jwe
parents: 134
diff changeset
110 return retval;
7849db4b6dbc [project @ 1993-10-04 02:36:45 by jwe]
jwe
parents: 134
diff changeset
111
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
112 ostrstream plot_buf;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
113
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
114 switch (ndim)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
115 {
476
de9de43ad21f [project @ 1994-06-24 16:17:47 by jwe]
jwe
parents: 452
diff changeset
116 case 1:
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
117 if (plot_line_count == 0)
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
118 {
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
119 if (plot_list)
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
120 plot_buf << "plot";
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
121 else
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
122 {
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
123 ::error ("replot: must have something to plot");
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
124 return retval;
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 }
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
127 else
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
128 plot_buf << "replot";
476
de9de43ad21f [project @ 1994-06-24 16:17:47 by jwe]
jwe
parents: 452
diff changeset
129 break;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
130 case 2:
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
131 if (clear_before_plotting || plot_line_count == 0)
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
132 {
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
133 plot_line_count = 0;
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
134 plot_buf << "plot";
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
135 }
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
136 else
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
137 plot_buf << "replot";
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
138 break;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
139 case 3:
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
140 {
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
141 plot_line_count = 0;
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
142 plot_buf << "splot";
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
143 }
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
144 break;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
145 default:
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
146 panic_impossible ();
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
147 break;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
148 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
149
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
150 if (range)
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
151 {
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
152 if (plot_line_count == 0)
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
153 range->print (ndim, plot_buf);
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
154 else
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
155 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
156 hold is on");
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
157 }
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
158
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
159 if (error_state)
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
160 return retval;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
161
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
162 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
163 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
164 plot_line_count++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
165
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
166 if (ptr != plot_list)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
167 plot_buf << ",\\\n ";
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
168
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
169 int status = ptr->print (ndim, plot_buf);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
170 if (status < 0)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
171 return retval;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
174 plot_buf << "\n" << ends;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
175
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
176 // Just testing...
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
177 // char *message = plot_buf.str ();
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
178 // cout << "[*]" << message << "[*]\n";
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
179
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
180 if (parametric_plot && ndim == 2)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
181 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
182 warning ("can't make 2D parametric plot -- setting noparametric...");
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
183 send_to_plot_stream ("set noparametric\n");
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
184 char *message = plot_buf.str ();
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
185 send_to_plot_stream (message);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
186 delete [] message;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
187 send_to_plot_stream ("set parametric\n");
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
188 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
189 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
190 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
191 char *message = plot_buf.str ();
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
192 send_to_plot_stream (message);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
193 delete [] message;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
196 return retval;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
199 tree_subplot_list::tree_subplot_list (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
200 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
201 plot_data = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
202 using = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
203 title = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
204 style = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
205 next = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
206 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
207
491
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 478
diff changeset
208 tree_subplot_list::tree_subplot_list (tree_expression *data)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
209 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
210 plot_data = data;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
211 using = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
212 title = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
213 style = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
214 next = 0;
1
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
217 tree_subplot_list::tree_subplot_list (tree_subplot_list *t)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
218 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
219 plot_data = t->plot_data;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
220 using = t->using;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
221 title = t->title;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
222 style = t->style;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
223 next = t->next;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
224 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
225
491
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 478
diff changeset
226 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
227 tree_expression *t,
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
228 tree_subplot_style *s)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
229 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
230 plot_data = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
231 using = u;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
232 title = t;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
233 style = s;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
234 next = 0;
1
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
237 tree_subplot_list::~tree_subplot_list (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
238 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
239 delete plot_data;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
240 delete using;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
241 delete title;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
242 delete style;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
243 delete next;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
246 tree_subplot_list *
491
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 478
diff changeset
247 tree_subplot_list::set_data (tree_expression *data)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
248 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
249 plot_data = data;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
250 return this;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
253 tree_subplot_list *
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
254 tree_subplot_list::chain (tree_subplot_list *t)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
255 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
256 tree_subplot_list *tmp = new tree_subplot_list (t);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
257 tmp->next = this;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
258 return tmp;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
261 tree_subplot_list *
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
262 tree_subplot_list::reverse (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
263 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
264 tree_subplot_list *list = this;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
265 tree_subplot_list *next;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
266 tree_subplot_list *prev = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
267
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
268 while (list)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
269 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
270 next = list->next;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
271 list->next = prev;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
272 prev = list;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
273 list = next;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
274 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
275 return prev;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
278 tree_subplot_list *
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
279 tree_subplot_list::next_elem (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
280 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
281 return next;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
284 tree_constant
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
285 tree_subplot_list::eval (int print)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
286 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
287 return plot_data->eval (0);
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
290 int
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
291 tree_subplot_list::print (int ndim, ostrstream& plot_buf)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
292 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
293 int nc = 0;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
294 if (plot_data)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
295 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
296 tree_constant data = plot_data->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
297 if (! error_state && data.is_defined ())
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
298 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
299 char *file = 0;
86
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
300 if (data.is_string_type ())
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
301 {
87
8248ec41f677 [project @ 1993-09-06 05:03:36 by jwe]
jwe
parents: 86
diff changeset
302 file = tilde_expand (data.string_value ());
86
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
303 ifstream ftmp (file);
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
304 if (ftmp)
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
305 {
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
306 plot_buf << " \"" << file << '"';
87
8248ec41f677 [project @ 1993-09-06 05:03:36 by jwe]
jwe
parents: 86
diff changeset
307 free (file);
134
4e753587fac1 [project @ 1993-09-29 16:15:02 by jwe]
jwe
parents: 87
diff changeset
308 goto have_existing_file_or_command;
86
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
309 }
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
310 else
87
8248ec41f677 [project @ 1993-09-06 05:03:36 by jwe]
jwe
parents: 86
diff changeset
311 {
8248ec41f677 [project @ 1993-09-06 05:03:36 by jwe]
jwe
parents: 86
diff changeset
312 free (file);
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
313 file = 0;
134
4e753587fac1 [project @ 1993-09-29 16:15:02 by jwe]
jwe
parents: 87
diff changeset
314
4e753587fac1 [project @ 1993-09-29 16:15:02 by jwe]
jwe
parents: 87
diff changeset
315 // 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
316 // command.
4e753587fac1 [project @ 1993-09-29 16:15:02 by jwe]
jwe
parents: 87
diff changeset
317 plot_buf << " " << data.string_value ();
4e753587fac1 [project @ 1993-09-29 16:15:02 by jwe]
jwe
parents: 87
diff changeset
318 goto have_existing_file_or_command;
87
8248ec41f677 [project @ 1993-09-06 05:03:36 by jwe]
jwe
parents: 86
diff changeset
319 }
86
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
320 }
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
321
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
322 nc = data.columns ();
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
323 switch (ndim)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
324 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
325 case 2:
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
326 file = save_in_tmp_file (data, ndim);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
327 break;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
328 case 3:
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
329 file = save_in_tmp_file (data, ndim, parametric_plot);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
330 break;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
331 default:
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
332 panic_impossible ();
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
333 break;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
336 if (file)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
337 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
338 mark_for_deletion (file);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
339 plot_buf << " \"" << file << '"';
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 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
342 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
343 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
344 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
345 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
346 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
347
134
4e753587fac1 [project @ 1993-09-29 16:15:02 by jwe]
jwe
parents: 87
diff changeset
348 have_existing_file_or_command:
86
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
349
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
350 if (using)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
351 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
352 int status = using->print (ndim, nc, plot_buf);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
353 if (status < 0)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
354 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
355 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
356
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
357 if (title)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
358 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
359 tree_constant tmp = title->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
360 if (! error_state && tmp.is_string_type ())
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
361 plot_buf << " title " << '"' << tmp.string_value () << '"';
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
362 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
363 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
364 warning ("line title must be a string");
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
365 plot_buf << " title " << '"' << "line " << plot_line_count << '"';
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 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
368 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
369 plot_buf << " title " << '"' << "line " << plot_line_count << '"';
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
370
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
371 if (style)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
372 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
373 int status = style->print (plot_buf);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
374 if (status < 0)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
375 return -1;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
378 return 0;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
381 tree_plot_limits::tree_plot_limits (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
382 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
383 x_range = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
384 y_range = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
385 z_range = 0;
1
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
388 tree_plot_limits::tree_plot_limits (tree_plot_range *xlim)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
389 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
390 x_range = xlim;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
391 y_range = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
392 z_range = 0;
1
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
395 tree_plot_limits::tree_plot_limits (tree_plot_range *xlim,
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
396 tree_plot_range *ylim)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
397 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
398 x_range = xlim;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
399 y_range = ylim;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
400 z_range = 0;
1
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
403 tree_plot_limits::tree_plot_limits (tree_plot_range *xlim,
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
404 tree_plot_range *ylim,
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
405 tree_plot_range *zlim)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
406 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
407 x_range = xlim;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
408 y_range = ylim;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
409 z_range = zlim;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
412 tree_plot_limits::~tree_plot_limits (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
413 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
414 delete x_range;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
415 delete y_range;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
416 delete z_range;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
419 tree_constant
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
420 tree_plot_limits::eval (int print)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
421 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
422 tree_constant retval;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
423 return retval;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
426 void
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
427 tree_plot_limits::print (int ndim, ostrstream& plot_buf)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
428 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
429 if (ndim == 2 || ndim == 3)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
430 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
431 if (x_range)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
432 x_range->print (plot_buf);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
433 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
434 return;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
435
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
436 if (y_range)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
437 y_range->print (plot_buf);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
438 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
439 return;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
440 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
441
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
442 if (ndim == 3 && z_range)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
443 z_range->print (plot_buf);
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
446 tree_plot_range::tree_plot_range (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
447 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
448 lower = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
449 upper = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
450 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
451
491
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 478
diff changeset
452 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
453 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
454 lower = l;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
455 upper = u;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
458 tree_plot_range::~tree_plot_range (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
459 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
460 delete lower;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
461 delete upper;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
464 tree_constant
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
465 tree_plot_range::eval (int print)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
466 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
467 tree_constant retval;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
468 return retval;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
471 void
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
472 tree_plot_range::print (ostrstream& plot_buf)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
473 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
474 plot_buf << " [";
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
475
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
476 if (lower)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
477 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
478 tree_constant lower_val = lower->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
479 if (error_state)
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
480 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
481 ::error ("evaluating lower bound of plot range");
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
482 return;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
483 }
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
484 else
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
485 {
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
486 double lo = lower_val.to_scalar ();
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
487 plot_buf << lo;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
488 }
1
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
491 plot_buf << ":";
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
492
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
493 if (upper)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
494 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
495 tree_constant upper_val = upper->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
496 if (error_state)
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
497 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
498 ::error ("evaluating upper bound of plot range");
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
499 return;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
500 }
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
501 else
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
502 {
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
503 double hi = upper_val.to_scalar ();
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
504 plot_buf << hi;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
505 }
1
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
508 plot_buf << "]";
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
511 tree_subplot_using::tree_subplot_using (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
512 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
513 qualifier_count = 0;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
514 x[0] = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
515 x[1] = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
516 x[2] = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
517 x[3] = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
518 scanf_fmt = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
519 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
520
491
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 478
diff changeset
521 tree_subplot_using::tree_subplot_using (tree_expression *fmt)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
522 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
523 qualifier_count = 0;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
524 x[0] = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
525 x[1] = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
526 x[2] = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
527 x[3] = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
528 scanf_fmt = fmt;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
531 tree_subplot_using::~tree_subplot_using (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
532 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
533 delete scanf_fmt;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
536 tree_subplot_using *
491
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 478
diff changeset
537 tree_subplot_using::set_format (tree_expression *fmt)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
538 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
539 scanf_fmt = fmt;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
540 return this;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
543 tree_subplot_using *
491
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 478
diff changeset
544 tree_subplot_using::add_qualifier (tree_expression *t)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
545 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
546 if (qualifier_count < 4)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
547 x[qualifier_count] = t;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
548
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
549 qualifier_count++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
550
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
551 return this;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
554 tree_constant
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
555 tree_subplot_using::eval (int print)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
556 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
557 tree_constant retval;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
558 return retval;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
561 int
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
562 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
563 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
564 if ((ndim == 2 && qualifier_count > 4)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
565 || (ndim == 3 && qualifier_count > 3))
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
566 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
567
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
568 for (int i = 0; i < qualifier_count; i++)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
569 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
570 if (x[i])
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
571 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
572 tree_constant tmp = x[i]->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
573 if (error_state)
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
574 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
575 ::error ("evaluating plot using command");
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
576 return -1;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
577 }
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
578
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
579 double val;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
580 if (tmp.is_defined ())
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
581 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
582 val = tmp.to_scalar ();
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
583 if (i == 0)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
584 plot_buf << " using ";
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
585 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
586 plot_buf << ":";
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
587
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
588 int n = NINT (val);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
589
322
d93ab6bf48d7 [project @ 1994-02-02 04:30:42 by jwe]
jwe
parents: 240
diff changeset
590 if (n < 1 || n_max > 0 && n > n_max)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
591 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
592 ::error ("using: column %d out of range", n);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
593 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
594 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
595 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
596 plot_buf << n;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
597 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
598 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
599 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
600 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
601 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
602 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
603 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
604
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
605 if (scanf_fmt)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
606 warning ("ignoring scanf format in plot command");
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
607
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
608 return 0;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
611 tree_subplot_style::tree_subplot_style (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
612 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
613 style = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
614 linetype = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
615 pointtype = 0;
1
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
618 tree_subplot_style::tree_subplot_style (char *s)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
619 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
620 style = strsave (s);
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
621 linetype = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
622 pointtype = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
623 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
624
491
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 478
diff changeset
625 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
626 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
627 style = strsave (s);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
628 linetype = lt;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
629 pointtype = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
630 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
631
491
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 478
diff changeset
632 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
633 tree_expression *pt)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
634 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
635 style = strsave (s);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
636 linetype = lt;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
637 pointtype = pt;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
640 tree_subplot_style::~tree_subplot_style (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
641 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
642 delete [] style;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
643 delete linetype;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
644 delete pointtype;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
647 tree_constant
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
648 tree_subplot_style::eval (int print)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
649 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
650 tree_constant retval;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
651 return retval;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
654 int
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
655 tree_subplot_style::print (ostrstream& plot_buf)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
656 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
657 if (style)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
658 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
659 plot_buf << " with " << style;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
660
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
661 if (linetype)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
662 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
663 tree_constant tmp = linetype->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
664 if (! error_state && tmp.is_defined ())
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
665 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
666 double val = tmp.to_scalar ();
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
667 plot_buf << " " << NINT (val);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
668 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
669 else
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
670 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
671 ::error ("evaluating plot style command");
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
672 return -1;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
673 }
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
674 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
675
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
676 if (pointtype)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
677 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
678 tree_constant tmp = pointtype->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
679 if (! error_state && tmp.is_defined ())
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
680 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
681 double val = tmp.to_scalar ();
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
682 plot_buf << " " << NINT (val);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
683 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
684 else
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
685 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
686 ::error ("evaluating plot style command");
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
687 return -1;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
688 }
1
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 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
691 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
692 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
693
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
694 return 0;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
695 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
696
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
697 char *
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
698 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
699 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
700 char *name = strsave (tmpnam (0));
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
701 if (name)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
702 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
703 ofstream file (name);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
704 if (file)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
705 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
706 switch (ndim)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
707 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
708 case 2:
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
709 t.save (file);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
710 break;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
711 case 3:
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
712 t.save_three_d (file, parametric);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
713 break;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
714 default:
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
715 panic_impossible ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
716 break;
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 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
719 else
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
720 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
721 error ("couldn't open temporary output file `%s'", name);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
722 delete [] name;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
723 name = 0;
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 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
726 return name;
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
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
729 void
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
730 mark_for_deletion (const char *filename)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
731 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
732 char *tmp = strsave (filename);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
733 tmp_files.push (tmp);
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
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
736 void
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
737 cleanup_tmp_files (void)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
738 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
739 while (! tmp_files.empty ())
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
740 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
741 char *filename = tmp_files.pop ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
742 unlink (filename);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
743 delete [] filename;
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
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
747 int
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
748 send_to_plot_stream (const char *cmd)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
749 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
750 // From sighandlers.cc:
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
751 extern int pipe_handler_error_count;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
752
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
753 static int initialized = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
754
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
755 if (! plot_stream.is_open ())
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
756 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
757 plot_line_count = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
758
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
759 char *plot_prog = user_pref.gnuplot_binary;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
760 if (plot_prog)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
761 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
762 plot_stream.open (plot_prog);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
763 if (! plot_stream.is_open ())
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
764 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
765 warning ("plot: unable to open pipe to `%s'",
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
766 plot_prog);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
767
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
768 if (strcmp (plot_prog, "gnuplot") != 0)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
769 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
770 warning ("having trouble finding plotting program.");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
771 warning ("trying again with `gnuplot'");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
772 goto last_chance;
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 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
776 else
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
777 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
778 last_chance:
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
779
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
780 plot_stream.open ("gnuplot");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
781
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
782 if (! plot_stream.is_open ())
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
783 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
784 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
785 return -1;
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
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
790 if (! initialized)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
791 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
792 initialized = 1;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
793 plot_stream << "set data style lines\n";
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
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
796 plot_stream << cmd;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
797 plot_stream.flush ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
798 pipe_handler_error_count = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
799
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
800 return 0;
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
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
803 void
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
804 close_plot_stream (void)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
805 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
806 if (plot_stream.is_open ())
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
807 plot_stream.close ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
808
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
809 plot_line_count = 0;
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
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
812 DEFUN ("closeplot", Fcloseplot, Scloseplot, 1, 0,
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
813 "closeplot (): close the stream to plotter")
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
814 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
815 Octave_object retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
816 close_plot_stream ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
817 return retval;
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
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
820 DEFUN_TEXT ("hold", Fhold, Shold, -1, 1,
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
821 "hold [on|off]\n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
822 \n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
823 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
824 drawn. With no argument, toggle the current state.")
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
825 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
826 Octave_object retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
827
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
828 DEFINE_ARGV("hold");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
829
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
830 switch (argc)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
831 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
832 case 1:
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
833 clear_before_plotting = ! clear_before_plotting;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
834 break;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
835 case 2:
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
836 if (strcasecmp (argv[1], "on") == 0)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
837 clear_before_plotting = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
838 else if (strcasecmp (argv[1], "off") == 0)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
839 clear_before_plotting = 1;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
840 else
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
841 print_usage ("hold");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
842 break;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
843 default:
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
844 print_usage ("hold");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
845 break;
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
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
848 DELETE_ARGV;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
849
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
850 return retval;
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
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
853 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
854 "delete temporary data files used for plotting")
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
855 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
856 Octave_object retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
857 cleanup_tmp_files ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
858 return retval;
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
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
861 DEFUN_TEXT ("set", Fset, Sset, -1, 1,
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
862 "set [options]\n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
863 \n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
864 set plotting options")
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
865 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
866 Octave_object retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
867
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
868 DEFINE_ARGV("set");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
869
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
870 ostrstream plot_buf;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
871
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
872 if (argc > 1)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
873 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
874 if (almost_match ("parametric", argv[1], 3))
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
875 parametric_plot = 1;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
876 else if (almost_match ("noparametric", argv[1], 5))
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
877 parametric_plot = 0;
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
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
880 for (int i = 0; i < argc; i++)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
881 plot_buf << argv[i] << " ";
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
882
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
883 plot_buf << "\n" << ends;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
884
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
885 char *plot_command = plot_buf.str ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
886 send_to_plot_stream (plot_command);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
887
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
888 delete [] plot_command;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
889
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
890 DELETE_ARGV;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
891
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
892 return retval;
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 /*
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
896 * Set plotting options.
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
897 */
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
898 DEFUN_TEXT ("show", Fshow, Sshow, -1, 1,
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
899 "show [options]\n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
900 \n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
901 show plotting options")
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
902 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
903 Octave_object retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
904
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
905 DEFINE_ARGV("show");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
906
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
907 ostrstream plot_buf;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
908
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
909 for (int i = 0; i < argc; i++)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
910 plot_buf << argv[i] << " ";
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
911
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
912 plot_buf << "\n" << ends;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
913
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
914 char *plot_command = plot_buf.str ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
915 send_to_plot_stream (plot_command);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
916
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
917 delete [] plot_command;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
918
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
919 DELETE_ARGV;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
920
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
921 return retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
922 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
923
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
924 /*
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
925 ;;; Local Variables: ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
926 ;;; mode: C++ ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
927 ;;; page-delimiter: "^/\\*" ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
928 ;;; End: ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
929 */