annotate src/pt-plot.cc @ 1488:89c587478067

[project @ 1995-09-26 22:49:48 by jwe]
author jwe
date Tue, 26 Sep 1995 22:49:48 +0000
parents 3bb3848031a0
children 2aed00132ba2
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
1009
dfe01093f657 [project @ 1995-01-04 04:05:12 by jwe]
jwe
parents: 1000
diff changeset
4 Copyright (C) 1992, 1993, 1994, 1995 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
1315
611d403c7f3d [project @ 1995-06-25 19:56:32 by jwe]
jwe
parents: 1297
diff changeset
20 Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
1
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
1297
12ecc2ecf0e3 [project @ 1995-05-01 18:39:43 by jwe]
jwe
parents: 1203
diff changeset
24 #if defined (__GNUG__)
12ecc2ecf0e3 [project @ 1995-05-01 18:39:43 by jwe]
jwe
parents: 1203
diff changeset
25 #pragma implementation
12ecc2ecf0e3 [project @ 1995-05-01 18:39:43 by jwe]
jwe
parents: 1203
diff changeset
26 #endif
12ecc2ecf0e3 [project @ 1995-05-01 18:39:43 by jwe]
jwe
parents: 1203
diff changeset
27
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
28 #ifdef HAVE_CONFIG_H
1192
b6360f2d4fa6 [project @ 1995-03-30 21:38:35 by jwe]
jwe
parents: 1086
diff changeset
29 #include <config.h>
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
30 #endif
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
31
1343
94bedeb289e5 [project @ 1995-09-04 00:29:21 by jwe]
jwe
parents: 1328
diff changeset
32 #include <cstring>
94bedeb289e5 [project @ 1995-09-04 00:29:21 by jwe]
jwe
parents: 1328
diff changeset
33
1350
5f63d83dd694 [project @ 1995-09-05 07:37:59 by jwe]
jwe
parents: 1343
diff changeset
34 #include <fstream.h>
5f63d83dd694 [project @ 1995-09-05 07:37:59 by jwe]
jwe
parents: 1343
diff changeset
35 #include <iostream.h>
5f63d83dd694 [project @ 1995-09-05 07:37:59 by jwe]
jwe
parents: 1343
diff changeset
36 #include <strstream.h>
5f63d83dd694 [project @ 1995-09-05 07:37:59 by jwe]
jwe
parents: 1343
diff changeset
37
5f63d83dd694 [project @ 1995-09-05 07:37:59 by jwe]
jwe
parents: 1343
diff changeset
38 #ifdef HAVE_UNISTD_H
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
39 #include <sys/types.h>
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
40 #include <unistd.h>
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
41 #endif
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
42
1465
3bb3848031a0 [project @ 1995-09-22 07:35:51 by jwe]
jwe
parents: 1449
diff changeset
43 #include <readline/tilde.h>
3bb3848031a0 [project @ 1995-09-22 07:35:51 by jwe]
jwe
parents: 1449
diff changeset
44
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
45 #include "SLStack.h"
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
46 #include "procstream.h"
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
47
1352
19c10b8657d5 [project @ 1995-09-05 08:11:57 by jwe]
jwe
parents: 1350
diff changeset
48 #include "defun.h"
19c10b8657d5 [project @ 1995-09-05 08:11:57 by jwe]
jwe
parents: 1350
diff changeset
49 #include "error.h"
19c10b8657d5 [project @ 1995-09-05 08:11:57 by jwe]
jwe
parents: 1350
diff changeset
50 #include "gripes.h"
19c10b8657d5 [project @ 1995-09-05 08:11:57 by jwe]
jwe
parents: 1350
diff changeset
51 #include "help.h"
19c10b8657d5 [project @ 1995-09-05 08:11:57 by jwe]
jwe
parents: 1350
diff changeset
52 #include "load-save.h"
584
4057f845c1ee [project @ 1994-08-07 04:40:03 by jwe]
jwe
parents: 581
diff changeset
53 #include "tree-base.h"
4057f845c1ee [project @ 1994-08-07 04:40:03 by jwe]
jwe
parents: 581
diff changeset
54 #include "tree-cmd.h"
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
55 #include "tree-const.h"
1352
19c10b8657d5 [project @ 1995-09-05 08:11:57 by jwe]
jwe
parents: 1350
diff changeset
56 #include "tree-expr.h"
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
57 #include "tree-plot.h"
1352
19c10b8657d5 [project @ 1995-09-05 08:11:57 by jwe]
jwe
parents: 1350
diff changeset
58 #include "user-prefs.h"
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
59 #include "utils.h"
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
60
1358
dc9c01f66a19 [project @ 1995-09-05 21:10:01 by jwe]
jwe
parents: 1352
diff changeset
61 // The number of lines we've plotted so far.
735
7455048010b9 [project @ 1994-09-24 03:22:34 by jwe]
jwe
parents: 662
diff changeset
62 static int plot_line_count = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
63
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
64 // Is this a parametric plot? Makes a difference for 3D plotting.
735
7455048010b9 [project @ 1994-09-24 03:22:34 by jwe]
jwe
parents: 662
diff changeset
65 static int parametric_plot = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
66
943
4fc1ae8c24dc [project @ 1994-11-21 19:05:31 by jwe]
jwe
parents: 940
diff changeset
67 // The gnuplot terminal type.
4fc1ae8c24dc [project @ 1994-11-21 19:05:31 by jwe]
jwe
parents: 940
diff changeset
68 static char *gnuplot_terminal_type = 0;
4fc1ae8c24dc [project @ 1994-11-21 19:05:31 by jwe]
jwe
parents: 940
diff changeset
69
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
70 // Should the graph window be cleared before plotting the next line?
735
7455048010b9 [project @ 1994-09-24 03:22:34 by jwe]
jwe
parents: 662
diff changeset
71 static int clear_before_plotting = 1;
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
72
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
73 // 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
74 static SLStack <char *> tmp_files;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
75
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
76 // Pipe to gnuplot.
1449
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
77 static oprocstream *plot_stream = 0;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
78
866
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
79 // Use shortest possible abbreviations to minimize trouble caused by
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
80 // gnuplot's fixed-length command line buffer.
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
81
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
82 #ifndef GNUPLOT_COMMAND_PLOT
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
83 #define GNUPLOT_COMMAND_PLOT "pl"
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
84 #endif
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
85
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
86 #ifndef GNUPLOT_COMMAND_REPLOT
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
87 #define GNUPLOT_COMMAND_REPLOT "rep"
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
88 #endif
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
89
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
90 #ifndef GNUPLOT_COMMAND_SPLOT
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
91 #define GNUPLOT_COMMAND_SPLOT "sp"
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
92 #endif
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
93
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
94 #ifndef GNUPLOT_COMMAND_USING
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
95 #define GNUPLOT_COMMAND_USING "u"
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
96 #endif
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
97
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
98 #ifndef GNUPLOT_COMMAND_WITH
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
99 #define GNUPLOT_COMMAND_WITH "w"
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
100 #endif
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
101
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
102 #ifndef GNUPLOT_COMMAND_TITLE
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
103 #define GNUPLOT_COMMAND_TITLE "t"
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
104 #endif
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
105
597
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
106 static void
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
107 open_plot_stream (void)
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
108 {
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
109 static int initialized = 0;
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
110
1449
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
111 if (plot_stream && ! *plot_stream)
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
112 {
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
113 delete plot_stream;
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
114 plot_stream = 0;
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
115 }
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
116
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
117 if (! plot_stream)
597
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
118 {
943
4fc1ae8c24dc [project @ 1994-11-21 19:05:31 by jwe]
jwe
parents: 940
diff changeset
119 initialized = 0;
4fc1ae8c24dc [project @ 1994-11-21 19:05:31 by jwe]
jwe
parents: 940
diff changeset
120
597
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
121 plot_line_count = 0;
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
122
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
123 char *plot_prog = user_pref.gnuplot_binary;
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
124 if (plot_prog)
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
125 {
1449
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
126 plot_stream = new oprocstream (plot_prog);
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
127
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
128 if (plot_stream && ! *plot_stream)
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
129 {
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
130 delete plot_stream;
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
131 plot_stream = 0;
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
132 }
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
133
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
134 if (! plot_stream)
597
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
135 {
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
136 warning ("plot: unable to open pipe to `%s'",
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
137 plot_prog);
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
138
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
139 if (strcmp (plot_prog, "gnuplot") != 0)
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
140 {
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
141 warning ("having trouble finding plotting program.");
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
142 warning ("trying again with `gnuplot'");
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
143 goto last_chance;
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
144 }
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
145 }
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
146 }
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
147 else
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
148 {
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
149 last_chance:
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
150
1449
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
151 plot_stream = new oprocstream ("gnuplot");
597
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
152
1449
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
153 if (plot_stream && ! *plot_stream)
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
154 {
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
155 delete plot_stream;
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
156 plot_stream = 0;
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
157 }
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
158
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
159 if (! plot_stream)
597
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
160 error ("plot: unable to open pipe to `%s'", plot_prog);
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
161 }
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
162 }
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
163
1449
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
164 if (! error_state && plot_stream && *plot_stream && ! initialized)
597
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
165 {
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
166 initialized = 1;
1449
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
167 *plot_stream << "set data style lines\n";
943
4fc1ae8c24dc [project @ 1994-11-21 19:05:31 by jwe]
jwe
parents: 940
diff changeset
168
4fc1ae8c24dc [project @ 1994-11-21 19:05:31 by jwe]
jwe
parents: 940
diff changeset
169 if (gnuplot_terminal_type)
1449
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
170 *plot_stream << "set term " << gnuplot_terminal_type << "\n";
597
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
171 }
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
172 }
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
173
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
174 static int
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
175 send_to_plot_stream (const char *cmd)
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
176 {
1358
dc9c01f66a19 [project @ 1995-09-05 21:10:01 by jwe]
jwe
parents: 1352
diff changeset
177 // From sighandlers.cc:
dc9c01f66a19 [project @ 1995-09-05 21:10:01 by jwe]
jwe
parents: 1352
diff changeset
178
597
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
179 extern int pipe_handler_error_count;
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
180
1449
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
181 if (! (plot_stream && *plot_stream))
597
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
182 {
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
183 open_plot_stream ();
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
184
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
185 if (error_state)
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
186 return -1;
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
187 }
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
188
930
b02124748d40 [project @ 1994-11-16 01:40:19 by jwe]
jwe
parents: 929
diff changeset
189 int replot_len = strlen (GNUPLOT_COMMAND_REPLOT);
b02124748d40 [project @ 1994-11-16 01:40:19 by jwe]
jwe
parents: 929
diff changeset
190 int splot_len = strlen (GNUPLOT_COMMAND_SPLOT);
b02124748d40 [project @ 1994-11-16 01:40:19 by jwe]
jwe
parents: 929
diff changeset
191 int plot_len = strlen (GNUPLOT_COMMAND_PLOT);
b02124748d40 [project @ 1994-11-16 01:40:19 by jwe]
jwe
parents: 929
diff changeset
192
b02124748d40 [project @ 1994-11-16 01:40:19 by jwe]
jwe
parents: 929
diff changeset
193 int is_replot = (strncmp (cmd, GNUPLOT_COMMAND_REPLOT, replot_len) == 0);
b02124748d40 [project @ 1994-11-16 01:40:19 by jwe]
jwe
parents: 929
diff changeset
194 int is_splot = (strncmp (cmd, GNUPLOT_COMMAND_SPLOT, splot_len) == 0);
b02124748d40 [project @ 1994-11-16 01:40:19 by jwe]
jwe
parents: 929
diff changeset
195 int is_plot = (strncmp (cmd, GNUPLOT_COMMAND_PLOT, plot_len) == 0);
661
9ccf86647203 [project @ 1994-08-30 04:41:56 by jwe]
jwe
parents: 637
diff changeset
196
9ccf86647203 [project @ 1994-08-30 04:41:56 by jwe]
jwe
parents: 637
diff changeset
197 if (plot_line_count == 0 && is_replot)
597
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
198 error ("replot: no previous plot");
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
199 else
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
200 {
1449
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
201 *plot_stream << cmd;
930
b02124748d40 [project @ 1994-11-16 01:40:19 by jwe]
jwe
parents: 929
diff changeset
202
661
9ccf86647203 [project @ 1994-08-30 04:41:56 by jwe]
jwe
parents: 637
diff changeset
203 if (! (is_replot || is_splot || is_plot)
9ccf86647203 [project @ 1994-08-30 04:41:56 by jwe]
jwe
parents: 637
diff changeset
204 && plot_line_count > 0
9ccf86647203 [project @ 1994-08-30 04:41:56 by jwe]
jwe
parents: 637
diff changeset
205 && user_pref.automatic_replot)
1449
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
206 *plot_stream << GNUPLOT_COMMAND_REPLOT << "\n";
930
b02124748d40 [project @ 1994-11-16 01:40:19 by jwe]
jwe
parents: 929
diff changeset
207
1449
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
208 plot_stream->flush ();
597
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
209 pipe_handler_error_count = 0;
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
210 }
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
211
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
212 return 0;
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
213 }
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
214
581
bc813f5eb025 [project @ 1994-08-07 01:02:15 by jwe]
jwe
parents: 578
diff changeset
215 // Plotting, eh?
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
216
581
bc813f5eb025 [project @ 1994-08-07 01:02:15 by jwe]
jwe
parents: 578
diff changeset
217 tree_plot_command::tree_plot_command (void) : tree_command ()
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
218 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
219 range = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
220 plot_list = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
221 ndim = 0;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
222 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
223
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
224 tree_plot_command::tree_plot_command (subplot_list *plt, int nd)
581
bc813f5eb025 [project @ 1994-08-07 01:02:15 by jwe]
jwe
parents: 578
diff changeset
225 : tree_command ()
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
226 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
227 range = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
228 plot_list = plt;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
229 ndim = nd;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
230 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
231
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
232 tree_plot_command::tree_plot_command (subplot_list *plt,
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
233 plot_limits *rng, int nd)
581
bc813f5eb025 [project @ 1994-08-07 01:02:15 by jwe]
jwe
parents: 578
diff changeset
234 : tree_command ()
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 range = rng;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
237 plot_list = plt;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
238 ndim = nd;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
239 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
240
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
241 tree_plot_command::~tree_plot_command (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
242 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
243 delete range;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
244 delete plot_list;
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
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
247 void
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
248 tree_plot_command::eval (void)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
249 {
143
7849db4b6dbc [project @ 1993-10-04 02:36:45 by jwe]
jwe
parents: 134
diff changeset
250 if (error_state)
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
251 return;
143
7849db4b6dbc [project @ 1993-10-04 02:36:45 by jwe]
jwe
parents: 134
diff changeset
252
597
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
253 open_plot_stream ();
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
254
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
255 ostrstream plot_buf;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
256
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
257 switch (ndim)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
258 {
476
de9de43ad21f [project @ 1994-06-24 16:17:47 by jwe]
jwe
parents: 452
diff changeset
259 case 1:
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
260 if (plot_line_count == 0)
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
261 {
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
262 if (plot_list)
866
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
263 plot_buf << GNUPLOT_COMMAND_PLOT;
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
264 else
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
265 {
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
266 ::error ("replot: must have something to plot");
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
267 return;
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
268 }
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
269 }
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
270 else
866
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
271 plot_buf << GNUPLOT_COMMAND_REPLOT;
476
de9de43ad21f [project @ 1994-06-24 16:17:47 by jwe]
jwe
parents: 452
diff changeset
272 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
273
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
274 case 2:
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
275 if (clear_before_plotting || plot_line_count == 0)
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
276 {
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
277 plot_line_count = 0;
866
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
278 plot_buf << GNUPLOT_COMMAND_PLOT;
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
279 }
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
280 else
930
b02124748d40 [project @ 1994-11-16 01:40:19 by jwe]
jwe
parents: 929
diff changeset
281 plot_buf << GNUPLOT_COMMAND_REPLOT;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
282 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
283
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
284 case 3:
930
b02124748d40 [project @ 1994-11-16 01:40:19 by jwe]
jwe
parents: 929
diff changeset
285 if (clear_before_plotting || plot_line_count == 0)
b02124748d40 [project @ 1994-11-16 01:40:19 by jwe]
jwe
parents: 929
diff changeset
286 {
b02124748d40 [project @ 1994-11-16 01:40:19 by jwe]
jwe
parents: 929
diff changeset
287 plot_line_count = 0;
b02124748d40 [project @ 1994-11-16 01:40:19 by jwe]
jwe
parents: 929
diff changeset
288 plot_buf << GNUPLOT_COMMAND_SPLOT;
b02124748d40 [project @ 1994-11-16 01:40:19 by jwe]
jwe
parents: 929
diff changeset
289 }
b02124748d40 [project @ 1994-11-16 01:40:19 by jwe]
jwe
parents: 929
diff changeset
290 else
b02124748d40 [project @ 1994-11-16 01:40:19 by jwe]
jwe
parents: 929
diff changeset
291 plot_buf << GNUPLOT_COMMAND_REPLOT;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
292 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
293
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
294 default:
771
e16a175a8bb5 [project @ 1994-10-05 21:59:29 by jwe]
jwe
parents: 735
diff changeset
295 gripe_2_or_3_dim_plot ();
e16a175a8bb5 [project @ 1994-10-05 21:59:29 by jwe]
jwe
parents: 735
diff changeset
296 return;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
297 }
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 if (range)
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
300 {
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
301 if (plot_line_count == 0)
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
302 range->print (ndim, plot_buf);
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
303 else
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
304 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
305 hold is on");
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
306 }
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
307
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
308 if (error_state)
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
309 return;
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
310
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
311 if (plot_list)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
312 {
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
313 int status = plot_list->print (ndim, plot_buf);
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
314
771
e16a175a8bb5 [project @ 1994-10-05 21:59:29 by jwe]
jwe
parents: 735
diff changeset
315 if (error_state || status < 0)
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
316 return;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
317 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
318
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
319 plot_buf << "\n" << ends;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
320
1358
dc9c01f66a19 [project @ 1995-09-05 21:10:01 by jwe]
jwe
parents: 1352
diff changeset
321 // Just testing...
dc9c01f66a19 [project @ 1995-09-05 21:10:01 by jwe]
jwe
parents: 1352
diff changeset
322 // char *message = plot_buf.str ();
dc9c01f66a19 [project @ 1995-09-05 21:10:01 by jwe]
jwe
parents: 1352
diff changeset
323 // cout << "[*]" << message << "[*]\n";
1
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 if (parametric_plot && ndim == 2)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
326 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
327 warning ("can't make 2D parametric plot -- setting noparametric...");
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
328 send_to_plot_stream ("set noparametric\n");
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
329 char *message = plot_buf.str ();
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
330 send_to_plot_stream (message);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
331 delete [] message;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
332 send_to_plot_stream ("set parametric\n");
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
333 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
334 else
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 char *message = plot_buf.str ();
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
337 send_to_plot_stream (message);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
338 delete [] message;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
339 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
340 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
341
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
342 void
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
343 tree_plot_command::print_code (ostream& os)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
344 {
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
345 print_code_indent (os);
86
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
346
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
347 switch (ndim)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
348 {
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
349 case 1:
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
350 os << "replot";
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
351 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
352
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
353 case 2:
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
354 os << "gplot";
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
355 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
356
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
357 case 3:
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
358 os << "gsplot";
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
359 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
360
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
361 default:
771
e16a175a8bb5 [project @ 1994-10-05 21:59:29 by jwe]
jwe
parents: 735
diff changeset
362 os << "<unkown plot command>";
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
363 break;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
364 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
365
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
366 if (range)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
367 range->print_code (os);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
368
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
369 if (plot_list)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
370 plot_list->print_code (os);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
371 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
372
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
373 plot_limits::plot_limits (void)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
374 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
375 x_range = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
376 y_range = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
377 z_range = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
378 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
379
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
380 plot_limits::plot_limits (plot_range *xlim)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
381 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
382 x_range = xlim;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
383 y_range = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
384 z_range = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
385 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
386
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
387 plot_limits::plot_limits (plot_range *xlim,
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
388 plot_range *ylim)
1
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;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
391 y_range = ylim;
524
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
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
395 plot_limits::plot_limits (plot_range *xlim,
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
396 plot_range *ylim,
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
397 plot_range *zlim)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
398 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
399 x_range = xlim;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
400 y_range = ylim;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
401 z_range = zlim;
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
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
404 plot_limits::~plot_limits (void)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
405 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
406 delete x_range;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
407 delete y_range;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
408 delete z_range;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
409 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
410
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
411 void
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
412 plot_limits::print (int ndim, ostrstream& plot_buf)
1
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 if (ndim == 2 || ndim == 3)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
415 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
416 if (x_range)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
417 x_range->print (plot_buf);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
418 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
419 return;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
420
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
421 if (y_range)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
422 y_range->print (plot_buf);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
423 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
424 return;
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
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
427 if (ndim == 3 && z_range)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
428 z_range->print (plot_buf);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
429 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
430
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
431 void
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
432 plot_limits::print_code (ostream& os)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
433 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
434 if (x_range)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
435 x_range->print_code (os);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
436
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
437 if (y_range)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
438 y_range->print_code (os);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
439
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
440 if (z_range)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
441 z_range->print_code (os);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
442 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
443
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
444 plot_range::plot_range (void)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
445 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
446 lower = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
447 upper = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
448 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
449
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
450 plot_range::plot_range (tree_expression *l, tree_expression *u)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
451 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
452 lower = l;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
453 upper = u;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
454 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
455
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
456 plot_range::~plot_range (void)
1
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 delete lower;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
459 delete upper;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
460 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
461
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
462 void
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
463 plot_range::print (ostrstream& plot_buf)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
464 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
465 plot_buf << " [";
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
466
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
467 if (lower)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
468 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
469 tree_constant lower_val = lower->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
470 if (error_state)
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
471 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
472 ::error ("evaluating lower bound of plot range");
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
473 return;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
474 }
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
475 else
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
476 {
629
0788882808bc [project @ 1994-08-19 14:33:40 by jwe]
jwe
parents: 610
diff changeset
477 double lo = lower_val.double_value ();
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
478 plot_buf << lo;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
479 }
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
480 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
481
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
482 plot_buf << ":";
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
483
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
484 if (upper)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
485 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
486 tree_constant upper_val = upper->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
487 if (error_state)
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
488 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
489 ::error ("evaluating upper bound of plot range");
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
490 return;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
491 }
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
492 else
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
493 {
629
0788882808bc [project @ 1994-08-19 14:33:40 by jwe]
jwe
parents: 610
diff changeset
494 double hi = upper_val.double_value ();
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
495 plot_buf << hi;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
496 }
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
497 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
498
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
499 plot_buf << "]";
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
500 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
501
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
502 void
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
503 plot_range::print_code (ostream& os)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
504 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
505 os << " [";
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
506
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
507 if (lower)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
508 lower->print_code (os);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
509
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
510 os << ":";
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
511
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
512 if (upper)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
513 upper->print_code (os);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
514
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
515 os << "]";
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
516 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
517
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
518 subplot_using::subplot_using (void)
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 qualifier_count = 0;
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
521 x[0] = x[1] = x[2] = x[3] = 0;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
522 scanf_fmt = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
523 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
524
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
525 subplot_using::subplot_using (tree_expression *fmt) : val (4, -1)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
526 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
527 qualifier_count = 0;
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
528 x[0] = x[1] = x[2] = x[3] = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
529 scanf_fmt = fmt;
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
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
532 subplot_using::~subplot_using (void)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
533 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
534 delete scanf_fmt;
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
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
537 subplot_using *
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
538 subplot_using::set_format (tree_expression *fmt)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
539 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
540 scanf_fmt = fmt;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
541 return this;
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
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
544 subplot_using *
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
545 subplot_using::add_qualifier (tree_expression *t)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
546 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
547 if (qualifier_count < 4)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
548 x[qualifier_count] = t;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
549
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
550 qualifier_count++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
551
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
552 return this;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
555 int
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
556 subplot_using::eval (int ndim, int n_max)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
557 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
558 if ((ndim == 2 && qualifier_count > 4)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
559 || (ndim == 3 && qualifier_count > 3))
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
560 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
561
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
562 if (qualifier_count > 0)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
563 val.resize (qualifier_count);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
564
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
565 for (int i = 0; i < qualifier_count; i++)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
566 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
567 if (x[i])
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
568 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
569 tree_constant tmp = x[i]->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
570 if (error_state)
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
571 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
572 ::error ("evaluating plot using command");
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
573 return -1;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
574 }
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
575
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
576 double val_tmp;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
577 if (tmp.is_defined ())
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
578 {
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
579 val_tmp = tmp.double_value ();
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
580
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
581 if (error_state)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
582 return -1;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
583
1086
75fc98220389 [project @ 1995-01-31 04:17:15 by jwe]
jwe
parents: 1009
diff changeset
584 if (xisnan (val_tmp))
75fc98220389 [project @ 1995-01-31 04:17:15 by jwe]
jwe
parents: 1009
diff changeset
585 {
75fc98220389 [project @ 1995-01-31 04:17:15 by jwe]
jwe
parents: 1009
diff changeset
586 ::error ("NaN is invalid as a column specifier");
75fc98220389 [project @ 1995-01-31 04:17:15 by jwe]
jwe
parents: 1009
diff changeset
587 return -1;
75fc98220389 [project @ 1995-01-31 04:17:15 by jwe]
jwe
parents: 1009
diff changeset
588 }
75fc98220389 [project @ 1995-01-31 04:17:15 by jwe]
jwe
parents: 1009
diff changeset
589
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
590 int n = NINT (val_tmp);
1086
75fc98220389 [project @ 1995-01-31 04:17:15 by jwe]
jwe
parents: 1009
diff changeset
591
322
d93ab6bf48d7 [project @ 1994-02-02 04:30:42 by jwe]
jwe
parents: 240
diff changeset
592 if (n < 1 || n_max > 0 && n > n_max)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
593 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
594 ::error ("using: column %d out of range", n);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
595 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
596 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
597 else
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
598 val.elem (i) = n;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
599 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
600 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
601 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
602 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
603 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
604 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
605 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
606
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
607 if (scanf_fmt)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
608 warning ("ignoring scanf format in plot command");
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
609
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
610 return 0;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
611 }
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
612
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
613 ColumnVector
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
614 subplot_using::values (int ndim, int n_max)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
615 {
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
616 int status = eval (ndim, n_max);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
617
1203
da56532815ee [project @ 1995-04-03 22:58:38 by jwe]
jwe
parents: 1192
diff changeset
618 if (status < 0)
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
619 return -1;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
620
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
621 return val;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
622 }
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
623
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
624 int
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
625 subplot_using::print (int ndim, int n_max, ostrstream& plot_buf)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
626 {
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
627 int status = eval (ndim, n_max);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
628
1203
da56532815ee [project @ 1995-04-03 22:58:38 by jwe]
jwe
parents: 1192
diff changeset
629 if (status < 0)
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
630 return -1;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
631
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
632 for (int i = 0; i < qualifier_count; i++)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
633 {
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
634 if (i == 0)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
635 plot_buf << " " << GNUPLOT_COMMAND_USING << " ";
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
636 else
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
637 plot_buf << ":";
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
638
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
639 plot_buf << val.elem (i);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
640 }
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
641
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
642 return 0;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
643 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
644
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
645 void
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
646 subplot_using::print_code (ostream& os)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
647 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
648 os << " using ";
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
649 for (int i = 0; i < qualifier_count; i++)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
650 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
651 if (i > 0)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
652 os << ":";
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
653
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
654 if (x[i])
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
655 x[i]->print_code (os);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
656 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
657 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
658
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
659 subplot_style::subplot_style (void)
1
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 style = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
662 linetype = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
663 pointtype = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
664 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
665
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
666 subplot_style::subplot_style (char *s)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
667 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
668 style = strsave (s);
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
669 linetype = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
670 pointtype = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
671 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
672
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
673 subplot_style::subplot_style (char *s, tree_expression *lt)
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 style = strsave (s);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
676 linetype = lt;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
677 pointtype = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
678 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
679
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
680 subplot_style::subplot_style (char *s, tree_expression *lt,
491
2d7f9d72170c [project @ 1994-07-06 14:50:43 by jwe]
jwe
parents: 478
diff changeset
681 tree_expression *pt)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
682 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
683 style = strsave (s);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
684 linetype = lt;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
685 pointtype = pt;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
686 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
687
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
688 subplot_style::~subplot_style (void)
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 delete [] style;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
691 delete linetype;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
692 delete pointtype;
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
695 int
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
696 subplot_style::print (ostrstream& plot_buf)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
697 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
698 if (style)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
699 {
866
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
700 plot_buf << " " << GNUPLOT_COMMAND_WITH << " " << style;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
701
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
702 if (linetype)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
703 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
704 tree_constant tmp = linetype->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
705 if (! error_state && tmp.is_defined ())
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
706 {
629
0788882808bc [project @ 1994-08-19 14:33:40 by jwe]
jwe
parents: 610
diff changeset
707 double val = tmp.double_value ();
1086
75fc98220389 [project @ 1995-01-31 04:17:15 by jwe]
jwe
parents: 1009
diff changeset
708 if (xisnan (val))
75fc98220389 [project @ 1995-01-31 04:17:15 by jwe]
jwe
parents: 1009
diff changeset
709 {
75fc98220389 [project @ 1995-01-31 04:17:15 by jwe]
jwe
parents: 1009
diff changeset
710 ::error ("NaN is invalid a plotting line style");
75fc98220389 [project @ 1995-01-31 04:17:15 by jwe]
jwe
parents: 1009
diff changeset
711 return -1;
75fc98220389 [project @ 1995-01-31 04:17:15 by jwe]
jwe
parents: 1009
diff changeset
712 }
75fc98220389 [project @ 1995-01-31 04:17:15 by jwe]
jwe
parents: 1009
diff changeset
713 else
75fc98220389 [project @ 1995-01-31 04:17:15 by jwe]
jwe
parents: 1009
diff changeset
714 plot_buf << " " << NINT (val);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
715 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
716 else
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
717 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
718 ::error ("evaluating plot style command");
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
719 return -1;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
720 }
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
721 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
722
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
723 if (pointtype)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
724 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
725 tree_constant tmp = pointtype->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
726 if (! error_state && tmp.is_defined ())
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
727 {
629
0788882808bc [project @ 1994-08-19 14:33:40 by jwe]
jwe
parents: 610
diff changeset
728 double val = tmp.double_value ();
1086
75fc98220389 [project @ 1995-01-31 04:17:15 by jwe]
jwe
parents: 1009
diff changeset
729 if (xisnan (val))
75fc98220389 [project @ 1995-01-31 04:17:15 by jwe]
jwe
parents: 1009
diff changeset
730 {
75fc98220389 [project @ 1995-01-31 04:17:15 by jwe]
jwe
parents: 1009
diff changeset
731 ::error ("NaN is invalid a plotting point style");
75fc98220389 [project @ 1995-01-31 04:17:15 by jwe]
jwe
parents: 1009
diff changeset
732 return -1;
75fc98220389 [project @ 1995-01-31 04:17:15 by jwe]
jwe
parents: 1009
diff changeset
733 }
75fc98220389 [project @ 1995-01-31 04:17:15 by jwe]
jwe
parents: 1009
diff changeset
734 else
75fc98220389 [project @ 1995-01-31 04:17:15 by jwe]
jwe
parents: 1009
diff changeset
735 plot_buf << " " << NINT (val);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
736 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
737 else
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
738 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
739 ::error ("evaluating plot style command");
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
740 return -1;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
741 }
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
742 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
743 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
744 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
745 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
746
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
747 return 0;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
748 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
749
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
750 int
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
751 subplot_style::errorbars (void)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
752 {
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
753 return (style
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
754 && (almost_match ("errorbars", style, 1, 0)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
755 || almost_match ("boxerrorbars", style, 5, 0)));
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
756 }
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
757
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
758 void
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
759 subplot_style::print_code (ostream& os)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
760 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
761 os << " with " << style;
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
762
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
763 if (linetype)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
764 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
765 os << " ";
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
766 linetype->print_code (os);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
767 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
768
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
769 if (pointtype)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
770 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
771 os << " ";
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
772 pointtype->print_code (os);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
773 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
774 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
775
878
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
776 subplot::subplot (void)
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
777 {
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
778 plot_data = 0;
999
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
779 using_clause = 0;
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
780 title_clause = 0;
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
781 style_clause = 0;
878
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
782 }
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
783
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
784 subplot::subplot (tree_expression *data)
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
785 {
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
786 plot_data = data;
999
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
787 using_clause = 0;
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
788 title_clause = 0;
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
789 style_clause = 0;
878
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
790 }
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
791
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
792 subplot::subplot (subplot_using *u, tree_expression *t, subplot_style *s)
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
793 {
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
794 plot_data = 0;
999
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
795 using_clause = u;
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
796 title_clause = t;
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
797 style_clause = s;
878
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
798 }
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
799
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
800 subplot::~subplot (void)
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
801 {
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
802 delete plot_data;
999
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
803 delete using_clause;
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
804 delete title_clause;
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
805 delete style_clause;
878
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
806 }
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
807
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
808 void
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
809 subplot::set_data (tree_expression *data)
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
810 {
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
811 plot_data = data;
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
812 }
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
813
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
814 tree_constant
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
815 subplot::extract_plot_data (int ndim, tree_constant& data)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
816 {
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
817 tree_constant retval;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
818
999
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
819 if (using_clause)
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
820 {
999
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
821 ColumnVector val = using_clause->values (ndim);
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
822
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
823 Octave_object args;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
824 args(1) = val;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
825 args(0) = tree_constant::magic_colon_t;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
826
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
827 Octave_object tmp = data.eval (0, 1, args);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
828 retval = tmp(0);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
829
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
830 if (error_state)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
831 return tree_constant ();
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
832 }
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
833 else
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
834 {
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
835 retval = data;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
836 }
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
837
999
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
838 if (ndim == 2 && style_clause && style_clause->errorbars ())
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
839 {
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
840 int nc = retval.columns ();
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
841
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
842 if (nc < 3 || nc > 4)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
843 {
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
844 error ("plots with errorbars require 3 or 4 columns of data");
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
845 error ("but %d were provided", nc);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
846 return tree_constant ();
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
847 }
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
848 }
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
849
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
850 return retval;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
851 }
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
852
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
853 int
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
854 subplot::handle_plot_data (int ndim, ostrstream& plot_buf)
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
855 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
856 if (plot_data)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
857 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
858 tree_constant data = plot_data->eval (0);
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
859
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
860 if (! error_state && data.is_defined ())
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
861 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
862 char *file = 0;
610
14b2a186a5c0 [project @ 1994-08-14 00:55:49 by jwe]
jwe
parents: 607
diff changeset
863 if (data.is_string ())
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
864 {
1358
dc9c01f66a19 [project @ 1995-09-05 21:10:01 by jwe]
jwe
parents: 1352
diff changeset
865 // Should really try to look at data file to determine
dc9c01f66a19 [project @ 1995-09-05 21:10:01 by jwe]
jwe
parents: 1352
diff changeset
866 // n_max. Can't do much about other arbitrary gnuplot
dc9c01f66a19 [project @ 1995-09-05 21:10:01 by jwe]
jwe
parents: 1352
diff changeset
867 // commands though...
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
868
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
869 int n_max = 0;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
870
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
871 file = tilde_expand (data.string_value ());
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
872 ifstream ftmp (file);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
873 if (ftmp)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
874 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
875 plot_buf << " \"" << file << '"';
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
876 free (file);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
877 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
878 else
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
879 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
880 free (file);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
881 file = 0;
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
882
1358
dc9c01f66a19 [project @ 1995-09-05 21:10:01 by jwe]
jwe
parents: 1352
diff changeset
883 // Opening as a file failed. Let's try passing it
dc9c01f66a19 [project @ 1995-09-05 21:10:01 by jwe]
jwe
parents: 1352
diff changeset
884 // along as a plot command.
dc9c01f66a19 [project @ 1995-09-05 21:10:01 by jwe]
jwe
parents: 1352
diff changeset
885
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
886 plot_buf << " " << data.string_value ();
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
887 }
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
888
999
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
889 if (using_clause)
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
890 {
999
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
891 int status = using_clause->print (ndim, n_max, plot_buf);
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
892 if (status < 0)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
893 return -1;
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
894 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
895 }
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
896 else
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
897 {
1358
dc9c01f66a19 [project @ 1995-09-05 21:10:01 by jwe]
jwe
parents: 1352
diff changeset
898 // Eliminate the need for printing a using clause to
dc9c01f66a19 [project @ 1995-09-05 21:10:01 by jwe]
jwe
parents: 1352
diff changeset
899 // plot_buf.
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
900
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
901 tree_constant tmp_data = extract_plot_data (ndim, data);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
902
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
903 if (tmp_data.is_defined ())
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
904 {
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
905 switch (ndim)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
906 {
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
907 case 2:
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
908 file = save_in_tmp_file (tmp_data, ndim);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
909 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
910
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
911 case 3:
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
912 file = save_in_tmp_file (tmp_data, ndim,
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
913 parametric_plot);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
914 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
915
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
916 default:
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
917 gripe_2_or_3_dim_plot ();
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
918 break;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
919 }
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
920
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
921 if (file)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
922 {
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
923 mark_for_deletion (file);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
924 plot_buf << " \"" << file << '"';
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
925 }
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
926 }
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
927 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
928 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
929 else
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
930 return -1;
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
931 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
932 else
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
933 return -1;
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
934
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
935 return 0;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
936 }
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
937
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
938 int
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
939 subplot::print (int ndim, ostrstream& plot_buf)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
940 {
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
941 int status = handle_plot_data (ndim, plot_buf);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
942
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
943 if (status < 0)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
944 return -1;
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
945
999
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
946 if (title_clause)
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
947 {
999
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
948 tree_constant tmp = title_clause->eval (0);
610
14b2a186a5c0 [project @ 1994-08-14 00:55:49 by jwe]
jwe
parents: 607
diff changeset
949 if (! error_state && tmp.is_string ())
866
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
950 plot_buf << " " << GNUPLOT_COMMAND_TITLE << " "
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
951 << '"' << tmp.string_value () << '"';
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
952 else
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
953 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
954 warning ("line title must be a string");
866
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
955 plot_buf << " " << GNUPLOT_COMMAND_TITLE << " "
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
956 << '"' << "line " << plot_line_count << '"';
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
957 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
958 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
959 else
866
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
960 plot_buf << " " << GNUPLOT_COMMAND_TITLE << " "
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
961 << '"' << "line " << plot_line_count << '"';
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
962
999
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
963 if (style_clause)
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
964 {
999
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
965 int status = style_clause->print (plot_buf);
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
966 if (status < 0)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
967 return -1;
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
968 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
969
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
970 return 0;
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
971 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
972
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
973 void
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
974 subplot::print_code (ostream& os)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
975 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
976 if (plot_data)
592
a6ceb977bd95 [project @ 1994-08-09 01:26:57 by jwe]
jwe
parents: 591
diff changeset
977 {
a6ceb977bd95 [project @ 1994-08-09 01:26:57 by jwe]
jwe
parents: 591
diff changeset
978 os << " ";
a6ceb977bd95 [project @ 1994-08-09 01:26:57 by jwe]
jwe
parents: 591
diff changeset
979 plot_data->print_code (os);
a6ceb977bd95 [project @ 1994-08-09 01:26:57 by jwe]
jwe
parents: 591
diff changeset
980 }
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
981
999
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
982 if (using_clause)
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
983 using_clause->print_code (os);
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
984
999
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
985 if (title_clause)
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
986 title_clause->print_code (os);
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
987
999
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
988 if (style_clause)
b989de67b22d [project @ 1994-12-19 23:50:05 by jwe]
jwe
parents: 943
diff changeset
989 style_clause->print_code (os);
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
990 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
991
883
ff0bbf26b028 [project @ 1994-11-06 00:22:31 by jwe]
jwe
parents: 878
diff changeset
992 int
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
993 subplot_list::print (int ndim, ostrstream& plot_buf)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
994 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
995 int status = 0;
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
996
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
997 for (Pix p = first (); p != 0; next (p))
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
998 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
999 subplot *elt = this->operator () (p);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1000
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1001 plot_line_count++;
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1002
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1003 if (p != first ())
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1004 plot_buf << ",\\\n ";
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1005
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1006 status = elt->print (ndim, plot_buf);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1007
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1008 if (status < 0)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1009 break;
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1010 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1011
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1012 return status;
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1013 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1014
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1015 void
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1016 subplot_list::print_code (ostream& os)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1017 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1018 Pix p = first ();
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1019
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1020 while (p)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1021 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1022 subplot *elt = this->operator () (p);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1023
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1024 next (p);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1025
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1026 if (elt)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1027 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1028 elt->print_code (os);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1029
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1030 if (p)
592
a6ceb977bd95 [project @ 1994-08-09 01:26:57 by jwe]
jwe
parents: 591
diff changeset
1031 os << ",";
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1032 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1033 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1034 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
1035
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1036 char *
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1037 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
1038 {
662
fdf4ce2d855e [project @ 1994-08-30 04:49:31 by jwe]
jwe
parents: 661
diff changeset
1039 char *name = octave_tmp_file_name ();
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1040 if (name)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1041 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1042 ofstream file (name);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1043 if (file)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1044 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1045 switch (ndim)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1046 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1047 case 2:
871
1a137429b26e [project @ 1994-11-02 21:56:17 by jwe]
jwe
parents: 866
diff changeset
1048 save_ascii_data (file, t, 0, 1);
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1049 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
1050
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1051 case 3:
607
ae3b8b2924a0 [project @ 1994-08-13 20:11:17 by jwe]
jwe
parents: 597
diff changeset
1052 save_three_d (file, t, parametric);
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1053 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
1054
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1055 default:
771
e16a175a8bb5 [project @ 1994-10-05 21:59:29 by jwe]
jwe
parents: 735
diff changeset
1056 gripe_2_or_3_dim_plot ();
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1057 break;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1058 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1059 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1060 else
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1061 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1062 error ("couldn't open temporary output file `%s'", name);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1063 name = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1064 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1065 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1066 return name;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1067 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1068
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1069 void
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1070 mark_for_deletion (const char *filename)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1071 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1072 char *tmp = strsave (filename);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1073 tmp_files.push (tmp);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1074 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1075
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1076 void
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1077 cleanup_tmp_files (void)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1078 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1079 while (! tmp_files.empty ())
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1080 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1081 char *filename = tmp_files.pop ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1082 unlink (filename);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1083 delete [] filename;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1084 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1085 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1086
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1087 void
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1088 close_plot_stream (void)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1089 {
1449
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
1090 if (plot_stream)
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
1091 {
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
1092 delete plot_stream;
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
1093 plot_stream = 0;
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
1094 }
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1095
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1096 plot_line_count = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1097 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1098
1328
ec2ab864e8eb [project @ 1995-08-22 22:32:34 by jwe]
jwe
parents: 1315
diff changeset
1099 void
ec2ab864e8eb [project @ 1995-08-22 22:32:34 by jwe]
jwe
parents: 1315
diff changeset
1100 do_external_plotter_cd (const char *newdir)
ec2ab864e8eb [project @ 1995-08-22 22:32:34 by jwe]
jwe
parents: 1315
diff changeset
1101 {
1449
df589c97e140 [project @ 1995-09-20 03:49:51 by jwe]
jwe
parents: 1358
diff changeset
1102 if (plot_stream && *plot_stream)
1328
ec2ab864e8eb [project @ 1995-08-22 22:32:34 by jwe]
jwe
parents: 1315
diff changeset
1103 {
ec2ab864e8eb [project @ 1995-08-22 22:32:34 by jwe]
jwe
parents: 1315
diff changeset
1104 ostrstream plot_buf;
ec2ab864e8eb [project @ 1995-08-22 22:32:34 by jwe]
jwe
parents: 1315
diff changeset
1105 plot_buf << "cd \"" << newdir << "\"\n" << ends;
ec2ab864e8eb [project @ 1995-08-22 22:32:34 by jwe]
jwe
parents: 1315
diff changeset
1106 char *message = plot_buf.str ();
ec2ab864e8eb [project @ 1995-08-22 22:32:34 by jwe]
jwe
parents: 1315
diff changeset
1107 send_to_plot_stream (message);
ec2ab864e8eb [project @ 1995-08-22 22:32:34 by jwe]
jwe
parents: 1315
diff changeset
1108 delete [] message;
ec2ab864e8eb [project @ 1995-08-22 22:32:34 by jwe]
jwe
parents: 1315
diff changeset
1109 }
ec2ab864e8eb [project @ 1995-08-22 22:32:34 by jwe]
jwe
parents: 1315
diff changeset
1110 }
ec2ab864e8eb [project @ 1995-08-22 22:32:34 by jwe]
jwe
parents: 1315
diff changeset
1111
1488
89c587478067 [project @ 1995-09-26 22:49:48 by jwe]
jwe
parents: 1465
diff changeset
1112 DEFUN ("clearplot", Fclearplot, Sclearplot, 00,
883
ff0bbf26b028 [project @ 1994-11-06 00:22:31 by jwe]
jwe
parents: 878
diff changeset
1113 "clearplot (): clear the plot window")
ff0bbf26b028 [project @ 1994-11-06 00:22:31 by jwe]
jwe
parents: 878
diff changeset
1114 {
ff0bbf26b028 [project @ 1994-11-06 00:22:31 by jwe]
jwe
parents: 878
diff changeset
1115 Octave_object retval;
ff0bbf26b028 [project @ 1994-11-06 00:22:31 by jwe]
jwe
parents: 878
diff changeset
1116 send_to_plot_stream ("clear\n");
930
b02124748d40 [project @ 1994-11-16 01:40:19 by jwe]
jwe
parents: 929
diff changeset
1117
1358
dc9c01f66a19 [project @ 1995-09-05 21:10:01 by jwe]
jwe
parents: 1352
diff changeset
1118 // XXX FIXME XXX -- instead of just clearing these things, it would
dc9c01f66a19 [project @ 1995-09-05 21:10:01 by jwe]
jwe
parents: 1352
diff changeset
1119 // be nice if we could reset things to a user-specified default
dc9c01f66a19 [project @ 1995-09-05 21:10:01 by jwe]
jwe
parents: 1352
diff changeset
1120 // state.
930
b02124748d40 [project @ 1994-11-16 01:40:19 by jwe]
jwe
parents: 929
diff changeset
1121
b02124748d40 [project @ 1994-11-16 01:40:19 by jwe]
jwe
parents: 929
diff changeset
1122 send_to_plot_stream ("set title\n");
b02124748d40 [project @ 1994-11-16 01:40:19 by jwe]
jwe
parents: 929
diff changeset
1123 send_to_plot_stream ("set xlabel\n");
b02124748d40 [project @ 1994-11-16 01:40:19 by jwe]
jwe
parents: 929
diff changeset
1124 send_to_plot_stream ("set ylabel\n");
940
16062e9a6b7e [project @ 1994-11-21 15:41:05 by jwe]
jwe
parents: 930
diff changeset
1125 send_to_plot_stream ("set nogrid\n");
1000
de0df9547e08 [project @ 1994-12-21 15:56:47 by jwe]
jwe
parents: 999
diff changeset
1126 send_to_plot_stream ("set nolabel\n");
940
16062e9a6b7e [project @ 1994-11-21 15:41:05 by jwe]
jwe
parents: 930
diff changeset
1127
1358
dc9c01f66a19 [project @ 1995-09-05 21:10:01 by jwe]
jwe
parents: 1352
diff changeset
1128 // This makes a simple `replot' not work after a `clearplot' command
dc9c01f66a19 [project @ 1995-09-05 21:10:01 by jwe]
jwe
parents: 1352
diff changeset
1129 // has been issued.
940
16062e9a6b7e [project @ 1994-11-21 15:41:05 by jwe]
jwe
parents: 930
diff changeset
1130
16062e9a6b7e [project @ 1994-11-21 15:41:05 by jwe]
jwe
parents: 930
diff changeset
1131 plot_line_count = 0;
930
b02124748d40 [project @ 1994-11-16 01:40:19 by jwe]
jwe
parents: 929
diff changeset
1132
883
ff0bbf26b028 [project @ 1994-11-06 00:22:31 by jwe]
jwe
parents: 878
diff changeset
1133 return retval;
ff0bbf26b028 [project @ 1994-11-06 00:22:31 by jwe]
jwe
parents: 878
diff changeset
1134 }
ff0bbf26b028 [project @ 1994-11-06 00:22:31 by jwe]
jwe
parents: 878
diff changeset
1135
884
d92f1ea6d0cd [project @ 1994-11-06 00:42:40 by jwe]
jwe
parents: 883
diff changeset
1136 DEFALIAS (clg, clearplot);
d92f1ea6d0cd [project @ 1994-11-06 00:42:40 by jwe]
jwe
parents: 883
diff changeset
1137
1488
89c587478067 [project @ 1995-09-26 22:49:48 by jwe]
jwe
parents: 1465
diff changeset
1138 DEFUN ("closeplot", Fcloseplot, Scloseplot, 00,
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1139 "closeplot (): close the stream to plotter")
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1140 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1141 Octave_object retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1142 close_plot_stream ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1143 return retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1144 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1145
1488
89c587478067 [project @ 1995-09-26 22:49:48 by jwe]
jwe
parents: 1465
diff changeset
1146 DEFUN_TEXT ("hold", Fhold, Shold, 10,
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1147 "hold [on|off]\n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1148 \n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1149 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
1150 drawn. With no argument, toggle the current state.")
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1151 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1152 Octave_object retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1153
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1154 DEFINE_ARGV("hold");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1155
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1156 switch (argc)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1157 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1158 case 1:
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1159 clear_before_plotting = ! clear_before_plotting;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1160 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
1161
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1162 case 2:
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1163 if (strcasecmp (argv[1], "on") == 0)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1164 clear_before_plotting = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1165 else if (strcasecmp (argv[1], "off") == 0)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1166 clear_before_plotting = 1;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1167 else
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1168 print_usage ("hold");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1169 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
1170
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1171 default:
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1172 print_usage ("hold");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1173 break;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1174 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1175
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1176 DELETE_ARGV;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1177
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1178 return retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1179 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1180
1488
89c587478067 [project @ 1995-09-26 22:49:48 by jwe]
jwe
parents: 1465
diff changeset
1181 DEFUN ("ishold", Fishold, Sishold, 00,
735
7455048010b9 [project @ 1994-09-24 03:22:34 by jwe]
jwe
parents: 662
diff changeset
1182 "ishold\n\
7455048010b9 [project @ 1994-09-24 03:22:34 by jwe]
jwe
parents: 662
diff changeset
1183 \n\
7455048010b9 [project @ 1994-09-24 03:22:34 by jwe]
jwe
parents: 662
diff changeset
1184 Return 1 if hold is on, otherwise return 0.")
7455048010b9 [project @ 1994-09-24 03:22:34 by jwe]
jwe
parents: 662
diff changeset
1185 {
7455048010b9 [project @ 1994-09-24 03:22:34 by jwe]
jwe
parents: 662
diff changeset
1186 return (double) (! clear_before_plotting);
7455048010b9 [project @ 1994-09-24 03:22:34 by jwe]
jwe
parents: 662
diff changeset
1187 }
7455048010b9 [project @ 1994-09-24 03:22:34 by jwe]
jwe
parents: 662
diff changeset
1188
1488
89c587478067 [project @ 1995-09-26 22:49:48 by jwe]
jwe
parents: 1465
diff changeset
1189 DEFUN ("purge_tmp_files", Fpurge_tmp_files, Spurge_tmp_files, 00,
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1190 "delete temporary data files used for plotting")
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1191 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1192 Octave_object retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1193 cleanup_tmp_files ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1194 return retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1195 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1196
1488
89c587478067 [project @ 1995-09-26 22:49:48 by jwe]
jwe
parents: 1465
diff changeset
1197 DEFUN_TEXT ("set", Fset, Sset, 10,
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1198 "set [options]\n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1199 \n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1200 set plotting options")
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1201 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1202 Octave_object retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1203
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1204 DEFINE_ARGV("set");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1205
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1206 ostrstream plot_buf;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1207
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1208 if (argc > 1)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1209 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1210 if (almost_match ("parametric", argv[1], 3))
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1211 parametric_plot = 1;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1212 else if (almost_match ("noparametric", argv[1], 5))
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1213 parametric_plot = 0;
943
4fc1ae8c24dc [project @ 1994-11-21 19:05:31 by jwe]
jwe
parents: 940
diff changeset
1214 else if (almost_match ("term", argv[1], 1))
4fc1ae8c24dc [project @ 1994-11-21 19:05:31 by jwe]
jwe
parents: 940
diff changeset
1215 {
4fc1ae8c24dc [project @ 1994-11-21 19:05:31 by jwe]
jwe
parents: 940
diff changeset
1216 delete [] gnuplot_terminal_type;
4fc1ae8c24dc [project @ 1994-11-21 19:05:31 by jwe]
jwe
parents: 940
diff changeset
1217 ostrstream buf;
4fc1ae8c24dc [project @ 1994-11-21 19:05:31 by jwe]
jwe
parents: 940
diff changeset
1218 for (int i = 2; i < argc; i++)
4fc1ae8c24dc [project @ 1994-11-21 19:05:31 by jwe]
jwe
parents: 940
diff changeset
1219 buf << argv[i] << " ";
4fc1ae8c24dc [project @ 1994-11-21 19:05:31 by jwe]
jwe
parents: 940
diff changeset
1220 buf << "\n" << ends;
4fc1ae8c24dc [project @ 1994-11-21 19:05:31 by jwe]
jwe
parents: 940
diff changeset
1221 gnuplot_terminal_type = buf.str ();
4fc1ae8c24dc [project @ 1994-11-21 19:05:31 by jwe]
jwe
parents: 940
diff changeset
1222 }
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1223 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1224
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1225 for (int i = 0; i < argc; i++)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1226 plot_buf << argv[i] << " ";
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1227
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1228 plot_buf << "\n" << ends;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1229
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1230 char *plot_command = plot_buf.str ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1231 send_to_plot_stream (plot_command);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1232
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1233 delete [] plot_command;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1234
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1235 DELETE_ARGV;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1236
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1237 return retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1238 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1239
1488
89c587478067 [project @ 1995-09-26 22:49:48 by jwe]
jwe
parents: 1465
diff changeset
1240 DEFUN_TEXT ("show", Fshow, Sshow, 10,
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1241 "show [options]\n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1242 \n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1243 show plotting options")
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1244 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1245 Octave_object retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1246
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1247 DEFINE_ARGV("show");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1248
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1249 ostrstream plot_buf;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1250
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1251 for (int i = 0; i < argc; i++)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1252 plot_buf << argv[i] << " ";
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1253
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1254 plot_buf << "\n" << ends;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1255
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1256 char *plot_command = plot_buf.str ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1257 send_to_plot_stream (plot_command);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1258
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1259 delete [] plot_command;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1260
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1261 DELETE_ARGV;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1262
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1263 return retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1264 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1265
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1266 /*
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1267 ;;; Local Variables: ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1268 ;;; mode: C++ ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1269 ;;; page-delimiter: "^/\\*" ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1270 ;;; End: ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1271 */