annotate src/pt-plot.cc @ 629:0788882808bc

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