annotate src/pt-plot.cc @ 878:e8a677c3f042

[project @ 1994-11-05 03:23:14 by jwe]
author jwe
date Sat, 05 Nov 1994 03:27:36 +0000
parents fb24794ef0e2
children ff0bbf26b028
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1 // tree-plot.cc -*- C++ -*-
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
2 /*
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
3
322
d93ab6bf48d7 [project @ 1994-02-02 04:30:42 by jwe]
jwe
parents: 240
diff changeset
4 Copyright (C) 1992, 1993, 1994 John W. Eaton
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
5
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
6 This file is part of Octave.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
7
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
8 Octave is free software; you can redistribute it and/or modify it
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
9 under the terms of the GNU General Public License as published by the
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
10 Free Software Foundation; either version 2, or (at your option) any
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
11 later version.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
12
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
13 Octave is distributed in the hope that it will be useful, but WITHOUT
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
16 for more details.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
17
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
18 You should have received a copy of the GNU General Public License
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
19 along with Octave; see the file COPYING. If not, write to the Free
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
20 Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
21
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
22 */
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
23
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
24 #ifdef HAVE_CONFIG_H
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
25 #include "config.h"
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
26 #endif
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
27
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
28 #include <sys/types.h>
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
29 #ifdef HAVE_UNISTD_H
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
30 #include <unistd.h>
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
31 #endif
597
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
32 #include <string.h>
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
33 #include <iostream.h>
597
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
34 #include <strstream.h>
86
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
35 #include <fstream.h>
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
36
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
37 #include "SLStack.h"
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
38 #include "procstream.h"
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
39
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
40 #include "user-prefs.h"
584
4057f845c1ee [project @ 1994-08-07 04:40:03 by jwe]
jwe
parents: 581
diff changeset
41 #include "tree-base.h"
4057f845c1ee [project @ 1994-08-07 04:40:03 by jwe]
jwe
parents: 581
diff changeset
42 #include "tree-expr.h"
4057f845c1ee [project @ 1994-08-07 04:40:03 by jwe]
jwe
parents: 581
diff changeset
43 #include "tree-cmd.h"
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
44 #include "tree-const.h"
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
45 #include "tree-plot.h"
607
ae3b8b2924a0 [project @ 1994-08-13 20:11:17 by jwe]
jwe
parents: 597
diff changeset
46 #include "load-save.h"
543
b15c1fafec84 [project @ 1994-07-22 04:55:14 by jwe]
jwe
parents: 524
diff changeset
47 #include "help.h"
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
48 #include "error.h"
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
49 #include "gripes.h"
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
50 #include "utils.h"
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
51 #include "defun.h"
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
52
87
8248ec41f677 [project @ 1993-09-06 05:03:36 by jwe]
jwe
parents: 86
diff changeset
53 extern "C"
8248ec41f677 [project @ 1993-09-06 05:03:36 by jwe]
jwe
parents: 86
diff changeset
54 {
581
bc813f5eb025 [project @ 1994-08-07 01:02:15 by jwe]
jwe
parents: 578
diff changeset
55 #include <readline/tilde.h>
87
8248ec41f677 [project @ 1993-09-06 05:03:36 by jwe]
jwe
parents: 86
diff changeset
56 }
8248ec41f677 [project @ 1993-09-06 05:03:36 by jwe]
jwe
parents: 86
diff changeset
57
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
58 // 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
59 static int plot_line_count = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
60
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
61 // 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
62 static int parametric_plot = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
63
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
64 // 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
65 static int clear_before_plotting = 1;
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
66
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
67 // 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
68 static SLStack <char *> tmp_files;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
69
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
70 // Pipe to gnuplot.
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
71 static oprocstream plot_stream;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
72
866
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
73 // Use shortest possible abbreviations to minimize trouble caused by
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
74 // gnuplot's fixed-length command line buffer.
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
75
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
76 #ifndef GNUPLOT_COMMAND_PLOT
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
77 #define GNUPLOT_COMMAND_PLOT "pl"
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
78 #endif
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
79
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
80 #ifndef GNUPLOT_COMMAND_REPLOT
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
81 #define GNUPLOT_COMMAND_REPLOT "rep"
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
82 #endif
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
83
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
84 #ifndef GNUPLOT_COMMAND_SPLOT
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
85 #define GNUPLOT_COMMAND_SPLOT "sp"
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
86 #endif
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
87
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
88 #ifndef GNUPLOT_COMMAND_USING
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
89 #define GNUPLOT_COMMAND_USING "u"
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
90 #endif
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
91
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
92 #ifndef GNUPLOT_COMMAND_WITH
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
93 #define GNUPLOT_COMMAND_WITH "w"
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
94 #endif
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
95
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
96 #ifndef GNUPLOT_COMMAND_TITLE
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
97 #define GNUPLOT_COMMAND_TITLE "t"
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
98 #endif
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
99
597
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
100 static void
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
101 open_plot_stream (void)
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
102 {
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
103 static int initialized = 0;
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
104
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
105 if (! plot_stream.is_open ())
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
106 {
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
107 plot_line_count = 0;
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 char *plot_prog = user_pref.gnuplot_binary;
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
110 if (plot_prog)
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
111 {
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
112 plot_stream.open (plot_prog);
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
113 if (! plot_stream.is_open ())
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
114 {
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
115 warning ("plot: unable to open pipe to `%s'",
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
116 plot_prog);
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
117
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
118 if (strcmp (plot_prog, "gnuplot") != 0)
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
119 {
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
120 warning ("having trouble finding plotting program.");
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
121 warning ("trying again with `gnuplot'");
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
122 goto last_chance;
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
123 }
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
124 }
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
125 }
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
126 else
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
127 {
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
128 last_chance:
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
129
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
130 plot_stream.open ("gnuplot");
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
131
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
132 if (! plot_stream.is_open ())
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
133 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
134 }
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
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
137 if (! initialized)
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 initialized = 1;
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
140 plot_stream << "set data style lines\n";
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
141 }
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
142 }
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
143
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
144 static int
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
145 send_to_plot_stream (const char *cmd)
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 // From sighandlers.cc:
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
148 extern int pipe_handler_error_count;
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
149
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
150 if (! plot_stream.is_open ())
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
151 {
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
152 open_plot_stream ();
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
153
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
154 if (error_state)
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
155 return -1;
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
156 }
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
157
661
9ccf86647203 [project @ 1994-08-30 04:41:56 by jwe]
jwe
parents: 637
diff changeset
158 int is_replot = (strncmp (cmd, "replot", 6) == 0);
9ccf86647203 [project @ 1994-08-30 04:41:56 by jwe]
jwe
parents: 637
diff changeset
159 int is_splot = (strncmp (cmd, "splot", 5) == 0);
9ccf86647203 [project @ 1994-08-30 04:41:56 by jwe]
jwe
parents: 637
diff changeset
160 int is_plot = (strncmp (cmd, "plot", 4) == 0);
9ccf86647203 [project @ 1994-08-30 04:41:56 by jwe]
jwe
parents: 637
diff changeset
161
9ccf86647203 [project @ 1994-08-30 04:41:56 by jwe]
jwe
parents: 637
diff changeset
162 if (plot_line_count == 0 && is_replot)
597
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
163 error ("replot: no previous plot");
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
164 else
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 plot_stream << cmd;
661
9ccf86647203 [project @ 1994-08-30 04:41:56 by jwe]
jwe
parents: 637
diff changeset
167 if (! (is_replot || is_splot || is_plot)
9ccf86647203 [project @ 1994-08-30 04:41:56 by jwe]
jwe
parents: 637
diff changeset
168 && plot_line_count > 0
9ccf86647203 [project @ 1994-08-30 04:41:56 by jwe]
jwe
parents: 637
diff changeset
169 && user_pref.automatic_replot)
866
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
170 plot_stream << GNUPLOT_COMMAND_REPLOT << "\n";
597
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
171 plot_stream.flush ();
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
172 pipe_handler_error_count = 0;
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
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
175 return 0;
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
176 }
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
177
581
bc813f5eb025 [project @ 1994-08-07 01:02:15 by jwe]
jwe
parents: 578
diff changeset
178 // Plotting, eh?
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
179
581
bc813f5eb025 [project @ 1994-08-07 01:02:15 by jwe]
jwe
parents: 578
diff changeset
180 tree_plot_command::tree_plot_command (void) : tree_command ()
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
181 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
182 range = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
183 plot_list = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
184 ndim = 0;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
185 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
186
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
187 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
188 : tree_command ()
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
189 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
190 range = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
191 plot_list = plt;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
192 ndim = nd;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
193 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
194
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
195 tree_plot_command::tree_plot_command (subplot_list *plt,
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
196 plot_limits *rng, int nd)
581
bc813f5eb025 [project @ 1994-08-07 01:02:15 by jwe]
jwe
parents: 578
diff changeset
197 : tree_command ()
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
198 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
199 range = rng;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
200 plot_list = plt;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
201 ndim = nd;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
202 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
203
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
204 tree_plot_command::~tree_plot_command (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
205 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
206 delete range;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
207 delete plot_list;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
208 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
209
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
210 void
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
211 tree_plot_command::eval (void)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
212 {
143
7849db4b6dbc [project @ 1993-10-04 02:36:45 by jwe]
jwe
parents: 134
diff changeset
213 if (error_state)
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
214 return;
143
7849db4b6dbc [project @ 1993-10-04 02:36:45 by jwe]
jwe
parents: 134
diff changeset
215
597
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
216 open_plot_stream ();
205b8c2ef749 [project @ 1994-08-09 19:31:39 by jwe]
jwe
parents: 592
diff changeset
217
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
218 ostrstream plot_buf;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
219
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
220 switch (ndim)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
221 {
476
de9de43ad21f [project @ 1994-06-24 16:17:47 by jwe]
jwe
parents: 452
diff changeset
222 case 1:
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
223 if (plot_line_count == 0)
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
224 {
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
225 if (plot_list)
866
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
226 plot_buf << GNUPLOT_COMMAND_PLOT;
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
227 else
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
228 {
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
229 ::error ("replot: must have something to plot");
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
230 return;
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
231 }
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
232 }
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
233 else
866
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
234 plot_buf << GNUPLOT_COMMAND_REPLOT;
476
de9de43ad21f [project @ 1994-06-24 16:17:47 by jwe]
jwe
parents: 452
diff changeset
235 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
236
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
237 case 2:
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
238 if (clear_before_plotting || plot_line_count == 0)
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
239 {
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
240 plot_line_count = 0;
866
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
241 plot_buf << GNUPLOT_COMMAND_PLOT;
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
242 }
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
243 else
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
244 plot_buf << "replot";
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
245 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
246
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
247 case 3:
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
248 {
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
249 plot_line_count = 0;
866
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
250 plot_buf << GNUPLOT_COMMAND_SPLOT;
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
251 }
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
252 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
253
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
254 default:
771
e16a175a8bb5 [project @ 1994-10-05 21:59:29 by jwe]
jwe
parents: 735
diff changeset
255 gripe_2_or_3_dim_plot ();
e16a175a8bb5 [project @ 1994-10-05 21:59:29 by jwe]
jwe
parents: 735
diff changeset
256 return;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
257 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
258
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
259 if (range)
478
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
260 {
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
261 if (plot_line_count == 0)
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
262 range->print (ndim, plot_buf);
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
263 else
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
264 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
265 hold is on");
90964309100b [project @ 1994-06-28 16:39:41 by jwe]
jwe
parents: 476
diff changeset
266 }
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
267
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
268 if (error_state)
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
269 return;
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
270
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
271 if (plot_list)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
272 {
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
273 int status = plot_list->print (ndim, plot_buf);
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
274
771
e16a175a8bb5 [project @ 1994-10-05 21:59:29 by jwe]
jwe
parents: 735
diff changeset
275 if (error_state || status < 0)
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
276 return;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
277 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
278
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
279 plot_buf << "\n" << ends;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
280
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
281 // Just testing...
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
282 // char *message = plot_buf.str ();
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
283 // cout << "[*]" << message << "[*]\n";
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
284
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
285 if (parametric_plot && ndim == 2)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
286 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
287 warning ("can't make 2D parametric plot -- setting noparametric...");
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
288 send_to_plot_stream ("set noparametric\n");
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
289 char *message = plot_buf.str ();
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
290 send_to_plot_stream (message);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
291 delete [] message;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
292 send_to_plot_stream ("set parametric\n");
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
293 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
294 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
295 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
296 char *message = plot_buf.str ();
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
297 send_to_plot_stream (message);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
298 delete [] message;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
299 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
300 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
301
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
302 void
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
303 tree_plot_command::print_code (ostream& os)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
304 {
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
305 print_code_indent (os);
86
723cc7235104 [project @ 1993-09-06 04:56:50 by jwe]
jwe
parents: 1
diff changeset
306
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
307 switch (ndim)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
308 {
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
309 case 1:
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
310 os << "replot";
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
311 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
312
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
313 case 2:
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
314 os << "gplot";
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
315 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
316
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
317 case 3:
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
318 os << "gsplot";
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
319 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
320
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
321 default:
771
e16a175a8bb5 [project @ 1994-10-05 21:59:29 by jwe]
jwe
parents: 735
diff changeset
322 os << "<unkown plot command>";
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
323 break;
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
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
326 if (range)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
327 range->print_code (os);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
328
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
329 if (plot_list)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
330 plot_list->print_code (os);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
331 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
332
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
333 plot_limits::plot_limits (void)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
334 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
335 x_range = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
336 y_range = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
337 z_range = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
338 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
339
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
340 plot_limits::plot_limits (plot_range *xlim)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
341 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
342 x_range = xlim;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
343 y_range = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
344 z_range = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
345 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
346
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
347 plot_limits::plot_limits (plot_range *xlim,
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
348 plot_range *ylim)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
349 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
350 x_range = xlim;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
351 y_range = ylim;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
352 z_range = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
353 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
354
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
355 plot_limits::plot_limits (plot_range *xlim,
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
356 plot_range *ylim,
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
357 plot_range *zlim)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
358 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
359 x_range = xlim;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
360 y_range = ylim;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
361 z_range = zlim;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
362 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
363
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
364 plot_limits::~plot_limits (void)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
365 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
366 delete x_range;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
367 delete y_range;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
368 delete z_range;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
369 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
370
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
371 void
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
372 plot_limits::print (int ndim, ostrstream& plot_buf)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
373 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
374 if (ndim == 2 || ndim == 3)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
375 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
376 if (x_range)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
377 x_range->print (plot_buf);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
378 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
379 return;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
380
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
381 if (y_range)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
382 y_range->print (plot_buf);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
383 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
384 return;
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
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
387 if (ndim == 3 && z_range)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
388 z_range->print (plot_buf);
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
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
391 void
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
392 plot_limits::print_code (ostream& os)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
393 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
394 if (x_range)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
395 x_range->print_code (os);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
396
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
397 if (y_range)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
398 y_range->print_code (os);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
399
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
400 if (z_range)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
401 z_range->print_code (os);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
402 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
403
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
404 plot_range::plot_range (void)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
405 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
406 lower = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
407 upper = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
408 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
409
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
410 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
411 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
412 lower = l;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
413 upper = u;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
414 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
415
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
416 plot_range::~plot_range (void)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
417 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
418 delete lower;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
419 delete upper;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
420 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
421
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
422 void
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
423 plot_range::print (ostrstream& plot_buf)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
424 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
425 plot_buf << " [";
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 (lower)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
428 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
429 tree_constant lower_val = lower->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
430 if (error_state)
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
431 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
432 ::error ("evaluating lower bound of plot range");
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
433 return;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
434 }
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
435 else
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
436 {
629
0788882808bc [project @ 1994-08-19 14:33:40 by jwe]
jwe
parents: 610
diff changeset
437 double lo = lower_val.double_value ();
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
438 plot_buf << lo;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
439 }
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
440 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
441
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
442 plot_buf << ":";
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
443
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
444 if (upper)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
445 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
446 tree_constant upper_val = upper->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
447 if (error_state)
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
448 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
449 ::error ("evaluating upper bound of plot range");
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
450 return;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
451 }
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
452 else
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
453 {
629
0788882808bc [project @ 1994-08-19 14:33:40 by jwe]
jwe
parents: 610
diff changeset
454 double hi = upper_val.double_value ();
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
455 plot_buf << hi;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
456 }
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
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
459 plot_buf << "]";
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
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
462 void
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
463 plot_range::print_code (ostream& os)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
464 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
465 os << " [";
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
466
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
467 if (lower)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
468 lower->print_code (os);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
469
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
470 os << ":";
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
471
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
472 if (upper)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
473 upper->print_code (os);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
474
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
475 os << "]";
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
476 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
477
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
478 subplot_using::subplot_using (void)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
479 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
480 qualifier_count = 0;
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
481 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
482 scanf_fmt = 0;
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
483 have_values = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
484 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
485
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
486 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
487 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
488 qualifier_count = 0;
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
489 x[0] = x[1] = x[2] = x[3] = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
490 scanf_fmt = fmt;
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
491 have_values = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
492 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
493
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
494 subplot_using::~subplot_using (void)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
495 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
496 delete scanf_fmt;
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
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
499 subplot_using *
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
500 subplot_using::set_format (tree_expression *fmt)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
501 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
502 scanf_fmt = fmt;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
503 return this;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
504 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
505
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
506 subplot_using *
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
507 subplot_using::add_qualifier (tree_expression *t)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
508 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
509 if (qualifier_count < 4)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
510 x[qualifier_count] = t;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
511
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
512 qualifier_count++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
513
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
514 return this;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
515 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
516
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
517 int
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
518 subplot_using::eval (int ndim, int n_max)
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 if ((ndim == 2 && qualifier_count > 4)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
521 || (ndim == 3 && qualifier_count > 3))
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
522 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
523
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
524 if (have_values)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
525 return 1;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
526
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
527 if (qualifier_count > 0)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
528 val.resize (qualifier_count);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
529
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
530 for (int i = 0; i < qualifier_count; i++)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
531 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
532 if (x[i])
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 tree_constant tmp = x[i]->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
535 if (error_state)
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
536 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
537 ::error ("evaluating plot using command");
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
538 return -1;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
539 }
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
540
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
541 double val_tmp;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
542 if (tmp.is_defined ())
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
543 {
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
544 val_tmp = tmp.double_value ();
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
545
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
546 if (error_state)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
547 return -1;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
548
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
549 int n = NINT (val_tmp);
322
d93ab6bf48d7 [project @ 1994-02-02 04:30:42 by jwe]
jwe
parents: 240
diff changeset
550 if (n < 1 || n_max > 0 && n > n_max)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
551 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
552 ::error ("using: column %d out of range", n);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
553 return -1;
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 else
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
556 val.elem (i) = n;
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 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
559 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
560 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
561 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
562 return -1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
563 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
564
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
565 if (scanf_fmt)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
566 warning ("ignoring scanf format in plot command");
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
567
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
568 have_values = 1;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
569
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
570 return 0;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
571 }
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
572
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
573 ColumnVector
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
574 subplot_using::values (int ndim, int n_max)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
575 {
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
576 int status = eval (ndim, n_max);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
577
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
578 if (status < 0 || ! have_values)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
579 return -1;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
580
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
581 return val;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
582 }
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
583
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
584 int
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
585 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
586 {
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
587 int status = eval (ndim, n_max);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
588
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
589 if (status < 0 || ! have_values)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
590 return -1;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
591
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
592 for (int i = 0; i < qualifier_count; i++)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
593 {
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
594 if (i == 0)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
595 plot_buf << " " << GNUPLOT_COMMAND_USING << " ";
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
596 else
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
597 plot_buf << ":";
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
598
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
599 plot_buf << val.elem (i);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
600 }
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
601
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
602 return 0;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
603 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
604
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
605 void
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
606 subplot_using::print_code (ostream& os)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
607 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
608 os << " using ";
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
609 for (int i = 0; i < qualifier_count; i++)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
610 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
611 if (i > 0)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
612 os << ":";
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
613
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
614 if (x[i])
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
615 x[i]->print_code (os);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
616 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
617 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
618
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
619 subplot_style::subplot_style (void)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
620 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
621 style = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
622 linetype = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
623 pointtype = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
624 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
625
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
626 subplot_style::subplot_style (char *s)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
627 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
628 style = strsave (s);
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
629 linetype = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
630 pointtype = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
631 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
632
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
633 subplot_style::subplot_style (char *s, tree_expression *lt)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
634 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
635 style = strsave (s);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
636 linetype = lt;
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
637 pointtype = 0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
638 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
639
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
640 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
641 tree_expression *pt)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
642 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
643 style = strsave (s);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
644 linetype = lt;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
645 pointtype = pt;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
646 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
647
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
648 subplot_style::~subplot_style (void)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
649 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
650 delete [] style;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
651 delete linetype;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
652 delete pointtype;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
653 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
654
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
655 int
578
d169be9237fb [project @ 1994-08-03 20:06:54 by jwe]
jwe
parents: 543
diff changeset
656 subplot_style::print (ostrstream& plot_buf)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
657 {
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
658 if (style)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
659 {
866
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
660 plot_buf << " " << GNUPLOT_COMMAND_WITH << " " << style;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
661
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
662 if (linetype)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
663 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
664 tree_constant tmp = linetype->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
665 if (! error_state && tmp.is_defined ())
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
666 {
629
0788882808bc [project @ 1994-08-19 14:33:40 by jwe]
jwe
parents: 610
diff changeset
667 double val = tmp.double_value ();
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
668 plot_buf << " " << NINT (val);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
669 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
670 else
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
671 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
672 ::error ("evaluating plot style command");
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
673 return -1;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
674 }
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
675 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
676
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
677 if (pointtype)
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 tree_constant tmp = pointtype->eval (0);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
680 if (! error_state && tmp.is_defined ())
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
681 {
629
0788882808bc [project @ 1994-08-19 14:33:40 by jwe]
jwe
parents: 610
diff changeset
682 double val = tmp.double_value ();
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
683 plot_buf << " " << NINT (val);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
684 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
685 else
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
686 {
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 191
diff changeset
687 ::error ("evaluating plot style command");
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
688 return -1;
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 143
diff changeset
689 }
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
690 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
691 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
692 else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
693 return -1;
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 return 0;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
696 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
697
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
698 int
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
699 subplot_style::errorbars (void)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
700 {
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
701 return (style
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
702 && (almost_match ("errorbars", style, 1, 0)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
703 || almost_match ("boxerrorbars", style, 5, 0)));
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
704 }
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
705
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
706 void
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
707 subplot_style::print_code (ostream& os)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
708 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
709 os << " with " << style;
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
710
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
711 if (linetype)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
712 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
713 os << " ";
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
714 linetype->print_code (os);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
715 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
716
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
717 if (pointtype)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
718 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
719 os << " ";
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
720 pointtype->print_code (os);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
721 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
722 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
723
878
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
724 subplot::subplot (void)
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
725 {
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
726 plot_data = 0;
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
727 using = 0;
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
728 title = 0;
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
729 style = 0;
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
730 }
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
731
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
732 subplot::subplot (tree_expression *data)
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
733 {
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
734 plot_data = data;
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
735 using = 0;
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
736 title = 0;
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
737 style = 0;
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
738 }
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
739
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
740 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
741 {
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
742 plot_data = 0;
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
743 using = u;
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
744 title = t;
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
745 style = s;
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
746 }
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
747
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
748 subplot::~subplot (void)
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
749 {
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
750 delete plot_data;
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
751 delete using;
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
752 delete title;
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
753 delete style;
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
754 }
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
755
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
756 void
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
757 subplot::set_data (tree_expression *data)
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
758 {
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
759 plot_data = data;
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
760 }
e8a677c3f042 [project @ 1994-11-05 03:23:14 by jwe]
jwe
parents: 872
diff changeset
761
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
762 tree_constant
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
763 subplot::extract_plot_data (int ndim, tree_constant& data)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
764 {
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
765 tree_constant retval;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
766
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
767 if (using)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
768 {
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
769 ColumnVector val = using->values (ndim);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
770
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
771 Octave_object args;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
772 args(1) = val;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
773 args(0) = tree_constant::magic_colon_t;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
774
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
775 Octave_object tmp = data.eval (0, 1, args);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
776 retval = tmp(0);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
777
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
778 if (error_state)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
779 return tree_constant ();
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
780 }
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
781 else
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
782 {
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
783 retval = data;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
784 }
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
785
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
786 if (ndim == 2 && style && style->errorbars ())
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
787 {
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
788 int nc = retval.columns ();
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
789
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
790 if (nc < 3 || nc > 4)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
791 {
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
792 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
793 error ("but %d were provided", nc);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
794 return tree_constant ();
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
795 }
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
796 }
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
797
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
798 return retval;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
799 }
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
800
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
801 int
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
802 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
803 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
804 if (plot_data)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
805 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
806 tree_constant data = plot_data->eval (0);
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
807
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
808 if (! error_state && data.is_defined ())
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
809 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
810 char *file = 0;
610
14b2a186a5c0 [project @ 1994-08-14 00:55:49 by jwe]
jwe
parents: 607
diff changeset
811 if (data.is_string ())
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
812 {
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
813 // Should really try to look at data file to determine n_max. Can't
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
814 // do much about other arbitrary gnuplot commands though...
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
815
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
816 int n_max = 0;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
817
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
818 file = tilde_expand (data.string_value ());
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
819 ifstream ftmp (file);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
820 if (ftmp)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
821 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
822 plot_buf << " \"" << file << '"';
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
823 free (file);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
824 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
825 else
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
826 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
827 free (file);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
828 file = 0;
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
829
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
830 // Opening as a file failed. Let's try passing it along as a plot
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
831 // command.
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
832 plot_buf << " " << data.string_value ();
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
833 }
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 if (using)
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 int status = using->print (ndim, n_max, plot_buf);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
838 if (status < 0)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
839 return -1;
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
840 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
841 }
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
842 else
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
843 {
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
844 // Eliminate the need for printing a using clause to plot_buf.
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
845
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
846 tree_constant tmp_data = extract_plot_data (ndim, data);
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 if (tmp_data.is_defined ())
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 switch (ndim)
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 case 2:
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
853 file = save_in_tmp_file (tmp_data, ndim);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
854 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
855
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
856 case 3:
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
857 file = save_in_tmp_file (tmp_data, ndim,
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
858 parametric_plot);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
859 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
860
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
861 default:
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
862 gripe_2_or_3_dim_plot ();
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
863 break;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
864 }
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
865
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
866 if (file)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
867 {
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
868 mark_for_deletion (file);
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
869 plot_buf << " \"" << file << '"';
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
870 }
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
871 }
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
872 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
873 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
874 else
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
875 return -1;
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
876 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
877 else
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
878 return -1;
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
879
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
880 return 0;
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
881 }
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
882
872
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
883 int
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
884 subplot::print (int ndim, ostrstream& plot_buf)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
885 {
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
886 int status = handle_plot_data (ndim, plot_buf);
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 if (status < 0)
fb24794ef0e2 [project @ 1994-11-04 00:59:24 by jwe]
jwe
parents: 871
diff changeset
889 return -1;
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
890
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
891 if (title)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
892 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
893 tree_constant tmp = title->eval (0);
610
14b2a186a5c0 [project @ 1994-08-14 00:55:49 by jwe]
jwe
parents: 607
diff changeset
894 if (! error_state && tmp.is_string ())
866
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
895 plot_buf << " " << GNUPLOT_COMMAND_TITLE << " "
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
896 << '"' << tmp.string_value () << '"';
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
897 else
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
898 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
899 warning ("line title must be a string");
866
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
900 plot_buf << " " << GNUPLOT_COMMAND_TITLE << " "
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
901 << '"' << "line " << plot_line_count << '"';
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
902 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
903 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
904 else
866
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
905 plot_buf << " " << GNUPLOT_COMMAND_TITLE << " "
f02ec9f8de65 [project @ 1994-11-02 05:19:02 by jwe]
jwe
parents: 777
diff changeset
906 << '"' << "line " << plot_line_count << '"';
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
907
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
908 if (style)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
909 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
910 int status = style->print (plot_buf);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
911 if (status < 0)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
912 return -1;
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
913 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
914
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
915 return 0;
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
916 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
917
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
918 void
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
919 subplot::print_code (ostream& os)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
920 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
921 if (plot_data)
592
a6ceb977bd95 [project @ 1994-08-09 01:26:57 by jwe]
jwe
parents: 591
diff changeset
922 {
a6ceb977bd95 [project @ 1994-08-09 01:26:57 by jwe]
jwe
parents: 591
diff changeset
923 os << " ";
a6ceb977bd95 [project @ 1994-08-09 01:26:57 by jwe]
jwe
parents: 591
diff changeset
924 plot_data->print_code (os);
a6ceb977bd95 [project @ 1994-08-09 01:26:57 by jwe]
jwe
parents: 591
diff changeset
925 }
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
926
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
927 if (using)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
928 using->print_code (os);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
929
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
930 if (title)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
931 title->print_code (os);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
932
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
933 if (style)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
934 style->print_code (os);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
935 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
936
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
937 subplot_list::print (int ndim, ostrstream& plot_buf)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
938 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
939 int status = 0;
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
940
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
941 for (Pix p = first (); p != 0; next (p))
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
942 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
943 subplot *elt = this->operator () (p);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
944
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
945 plot_line_count++;
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
946
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
947 if (p != first ())
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
948 plot_buf << ",\\\n ";
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
949
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
950 status = elt->print (ndim, plot_buf);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
951
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
952 if (status < 0)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
953 break;
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
954 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
955
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
956 return status;
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 void
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
960 subplot_list::print_code (ostream& os)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
961 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
962 Pix p = first ();
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
963
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
964 while (p)
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
965 {
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
966 subplot *elt = this->operator () (p);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
967
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
968 next (p);
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 if (elt)
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 elt->print_code (os);
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
973
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
974 if (p)
592
a6ceb977bd95 [project @ 1994-08-09 01:26:57 by jwe]
jwe
parents: 591
diff changeset
975 os << ",";
591
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
976 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
977 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
978 }
7563a815389b [project @ 1994-08-09 01:18:36 by jwe]
jwe
parents: 584
diff changeset
979
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
980 char *
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
981 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
982 {
662
fdf4ce2d855e [project @ 1994-08-30 04:49:31 by jwe]
jwe
parents: 661
diff changeset
983 char *name = octave_tmp_file_name ();
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
984 if (name)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
985 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
986 ofstream file (name);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
987 if (file)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
988 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
989 switch (ndim)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
990 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
991 case 2:
871
1a137429b26e [project @ 1994-11-02 21:56:17 by jwe]
jwe
parents: 866
diff changeset
992 save_ascii_data (file, t, 0, 1);
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
993 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
994
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
995 case 3:
607
ae3b8b2924a0 [project @ 1994-08-13 20:11:17 by jwe]
jwe
parents: 597
diff changeset
996 save_three_d (file, t, parametric);
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
997 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
998
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
999 default:
771
e16a175a8bb5 [project @ 1994-10-05 21:59:29 by jwe]
jwe
parents: 735
diff changeset
1000 gripe_2_or_3_dim_plot ();
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1001 break;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1002 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1003 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1004 else
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1005 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1006 error ("couldn't open temporary output file `%s'", name);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1007 name = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1008 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1009 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1010 return name;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1011 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1012
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1013 void
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1014 mark_for_deletion (const char *filename)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1015 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1016 char *tmp = strsave (filename);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1017 tmp_files.push (tmp);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1018 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1019
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1020 void
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1021 cleanup_tmp_files (void)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1022 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1023 while (! tmp_files.empty ())
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1024 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1025 char *filename = tmp_files.pop ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1026 unlink (filename);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1027 delete [] filename;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1028 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1029 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1030
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1031 void
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1032 close_plot_stream (void)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1033 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1034 if (plot_stream.is_open ())
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1035 plot_stream.close ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1036
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1037 plot_line_count = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1038 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1039
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1040 DEFUN ("closeplot", Fcloseplot, Scloseplot, 1, 0,
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1041 "closeplot (): close the stream to plotter")
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1042 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1043 Octave_object retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1044 close_plot_stream ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1045 return retval;
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
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1048 DEFUN_TEXT ("hold", Fhold, Shold, -1, 1,
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1049 "hold [on|off]\n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1050 \n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1051 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
1052 drawn. With no argument, toggle the current state.")
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1053 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1054 Octave_object retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1055
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1056 DEFINE_ARGV("hold");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1057
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1058 switch (argc)
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 case 1:
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1061 clear_before_plotting = ! clear_before_plotting;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1062 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
1063
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1064 case 2:
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1065 if (strcasecmp (argv[1], "on") == 0)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1066 clear_before_plotting = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1067 else if (strcasecmp (argv[1], "off") == 0)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1068 clear_before_plotting = 1;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1069 else
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1070 print_usage ("hold");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1071 break;
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 771
diff changeset
1072
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1073 default:
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1074 print_usage ("hold");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1075 break;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1076 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1077
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1078 DELETE_ARGV;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1079
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1080 return retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1081 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1082
735
7455048010b9 [project @ 1994-09-24 03:22:34 by jwe]
jwe
parents: 662
diff changeset
1083 DEFUN ("ishold", Fishold, Sishold, 0, 1,
7455048010b9 [project @ 1994-09-24 03:22:34 by jwe]
jwe
parents: 662
diff changeset
1084 "ishold\n\
7455048010b9 [project @ 1994-09-24 03:22:34 by jwe]
jwe
parents: 662
diff changeset
1085 \n\
7455048010b9 [project @ 1994-09-24 03:22:34 by jwe]
jwe
parents: 662
diff changeset
1086 Return 1 if hold is on, otherwise return 0.")
7455048010b9 [project @ 1994-09-24 03:22:34 by jwe]
jwe
parents: 662
diff changeset
1087 {
7455048010b9 [project @ 1994-09-24 03:22:34 by jwe]
jwe
parents: 662
diff changeset
1088 return (double) (! clear_before_plotting);
7455048010b9 [project @ 1994-09-24 03:22:34 by jwe]
jwe
parents: 662
diff changeset
1089 }
7455048010b9 [project @ 1994-09-24 03:22:34 by jwe]
jwe
parents: 662
diff changeset
1090
524
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1091 DEFUN ("purge_tmp_files", Fpurge_tmp_files, Spurge_tmp_files, 5, 1,
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1092 "delete temporary data files used for plotting")
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1093 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1094 Octave_object retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1095 cleanup_tmp_files ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1096 return retval;
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
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1099 DEFUN_TEXT ("set", Fset, Sset, -1, 1,
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1100 "set [options]\n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1101 \n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1102 set plotting options")
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1103 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1104 Octave_object retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1105
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1106 DEFINE_ARGV("set");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1107
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1108 ostrstream plot_buf;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1109
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1110 if (argc > 1)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1111 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1112 if (almost_match ("parametric", argv[1], 3))
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1113 parametric_plot = 1;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1114 else if (almost_match ("noparametric", argv[1], 5))
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1115 parametric_plot = 0;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1116 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1117
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1118 for (int i = 0; i < argc; i++)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1119 plot_buf << argv[i] << " ";
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1120
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1121 plot_buf << "\n" << ends;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1122
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1123 char *plot_command = plot_buf.str ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1124 send_to_plot_stream (plot_command);
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1125
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1126 delete [] plot_command;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1127
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1128 DELETE_ARGV;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1129
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1130 return retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1131 }
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1132
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1133 DEFUN_TEXT ("show", Fshow, Sshow, -1, 1,
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1134 "show [options]\n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1135 \n\
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1136 show plotting options")
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1137 {
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1138 Octave_object retval;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1139
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1140 DEFINE_ARGV("show");
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1141
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1142 ostrstream plot_buf;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1143
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1144 for (int i = 0; i < argc; i++)
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1145 plot_buf << argv[i] << " ";
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1146
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1147 plot_buf << "\n" << ends;
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1148
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1149 char *plot_command = plot_buf.str ();
2814c75c8398 [project @ 1994-07-20 18:36:24 by jwe]
jwe
parents: 491
diff changeset
1150 send_to_plot_stream (plot_command);
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 delete [] plot_command;
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 DELETE_ARGV;
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 return retval;
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
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1159 /*
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1160 ;;; Local Variables: ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1161 ;;; mode: C++ ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1162 ;;; page-delimiter: "^/\\*" ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1163 ;;; End: ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1164 */