1 /***************************************************************************
2 * exec_1d.cpp is part of Math Graphic Library
3 * Copyright (C) 2007-2016 Alexey Balakin <mathgl.abalakin@gmail.ru> *
4 * *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU Lesser General Public License as *
7 * published by the Free Software Foundation; either version 3 of the *
8 * License, or (at your option) any later version. *
9 * *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
14 * *
15 * You should have received a copy of the GNU Lesser General Public *
16 * License along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19 ***************************************************************************/
20 #ifdef WIN32
21 #include <io.h>
22 #include <direct.h>
23 #else
24 #include <unistd.h>
25 #endif
26
27 #include "mgl2/base.h"
28 #include "mgl2/parser.h"
29 wchar_t *mgl_str_copy(const char *s);
30 //-----------------------------------------------------------------------------
31 // 1D
32 //-----------------------------------------------------------------------------
mgls_area(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)33 int static mgls_area(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
34 {
35 int res=0;
36 if(!strcmp(k,"d")) gr->Area(*(a[0].d),"",opt);
37 else if(!strcmp(k,"ds")) gr->Area(*(a[0].d),a[1].s.s,opt);
38 else if(!strcmp(k,"dd")) gr->Area(*(a[0].d),*(a[1].d),"",opt);
39 else if(!strcmp(k,"dds")) gr->Area(*(a[0].d),*(a[1].d),a[2].s.s,opt);
40 else if(!strcmp(k,"ddd")) gr->Area(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
41 else if(!strcmp(k,"ddds")) gr->Area(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,opt);
42 else res = 1;
43 return res;
44 }
45 //-----------------------------------------------------------------------------
mgls_axial(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)46 int static mgls_axial(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
47 {
48 int res=0;
49 if(!strcmp(k,"d")) gr->Axial(*(a[0].d),"",opt);
50 else if(!strcmp(k,"ds")) gr->Axial(*(a[0].d),a[1].s.s,opt);
51 else if(!strcmp(k,"ddd")) gr->Axial(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
52 else if(!strcmp(k,"ddds")) gr->Axial(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,opt);
53 else res = 1;
54 return res;
55 }
56 //-----------------------------------------------------------------------------
mgls_bars(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)57 int static mgls_bars(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
58 {
59 int res=0;
60 if(!strcmp(k,"d")) gr->Bars(*(a[0].d), "",opt);
61 else if(!strcmp(k,"ds")) gr->Bars(*(a[0].d), a[1].s.s,opt);
62 else if(!strcmp(k,"dd")) gr->Bars(*(a[0].d), *(a[1].d), "",opt);
63 else if(!strcmp(k,"dds")) gr->Bars(*(a[0].d), *(a[1].d), a[2].s.s,opt);
64 else if(!strcmp(k,"ddd")) gr->Bars(*(a[0].d), *(a[1].d), *(a[2].d), "",opt);
65 else if(!strcmp(k,"ddds")) gr->Bars(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.s,opt);
66 else res = 1;
67 return res;
68 }
69 //-----------------------------------------------------------------------------
mgls_barh(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)70 int static mgls_barh(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
71 {
72 int res=0;
73 if(!strcmp(k,"d")) gr->Barh(*(a[0].d), "",opt);
74 else if(!strcmp(k,"ds")) gr->Barh(*(a[0].d), a[1].s.s,opt);
75 else if(!strcmp(k,"dd")) gr->Barh(*(a[0].d), *(a[1].d), "",opt);
76 else if(!strcmp(k,"dds")) gr->Barh(*(a[0].d), *(a[1].d), a[2].s.s,opt);
77 else res = 1;
78 return res;
79 }
80 //-----------------------------------------------------------------------------
mgls_bifurcation(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)81 int static mgls_bifurcation(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
82 {
83 int res=0;
84 if(!strcmp(k,"nd")) gr->Bifurcation(a[0].v,*(a[1].d),"",opt);
85 else if(!strcmp(k,"nds")) gr->Bifurcation(a[0].v,*(a[1].d),a[2].s.s,opt);
86 else if(!strcmp(k,"ns")) gr->Bifurcation(a[0].v,a[1].s.s,"",opt);
87 else if(!strcmp(k,"nss")) gr->Bifurcation(a[0].v,a[1].s.s,a[2].s.s,opt);
88 else res = 1;
89 return res;
90 }
91 //-----------------------------------------------------------------------------
mgls_boxplot(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)92 int static mgls_boxplot(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
93 {
94 int res=0;
95 if(!strcmp(k,"d")) gr->BoxPlot(*(a[0].d),"",opt);
96 else if(!strcmp(k,"ds")) gr->BoxPlot(*(a[0].d),a[1].s.s,opt);
97 else if(!strcmp(k,"dd")) gr->BoxPlot(*(a[0].d),*(a[1].d),"",opt);
98 else if(!strcmp(k,"dds")) gr->BoxPlot(*(a[0].d),*(a[1].d),a[2].s.s,opt);
99 else res = 1;
100 return res;
101 }
102 //-----------------------------------------------------------------------------
mgls_candle(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)103 int static mgls_candle(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
104 {
105 int res=0;
106 if(!strcmp(k,"d")) gr->Candle(*(a[0].d),"",opt);
107 else if(!strcmp(k,"ds")) gr->Candle(*(a[0].d),a[1].s.s,opt);
108 else if(!strcmp(k,"dd")) gr->Candle(*(a[0].d),*(a[1].d),"",opt);
109 else if(!strcmp(k,"dds")) gr->Candle(*(a[0].d),*(a[1].d),a[2].s.s,opt);
110 else if(!strcmp(k,"ddd")) gr->Candle(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
111 else if(!strcmp(k,"ddds")) gr->Candle(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,opt);
112 else if(!strcmp(k,"dddd")) gr->Candle(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
113 else if(!strcmp(k,"dddds")) gr->Candle(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,opt);
114 else if(!strcmp(k,"ddddd")) gr->Candle(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),"",opt);
115 else if(!strcmp(k,"ddddds"))gr->Candle(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[5].s.s,opt);
116 else res = 1;
117 return res;
118 }
119 //-----------------------------------------------------------------------------
mgls_chart(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)120 int static mgls_chart(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
121 {
122 int res=0;
123 if(!strcmp(k,"d")) gr->Chart(*(a[0].d), "",opt);
124 else if(!strcmp(k,"ds")) gr->Chart(*(a[0].d), a[1].s.s,opt);
125 else res = 1;
126 return res;
127 }
128 //-----------------------------------------------------------------------------
mgls_cones(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)129 int static mgls_cones(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
130 {
131 int res=0;
132 if(!strcmp(k,"d")) gr->Cones(*(a[0].d), "",opt);
133 else if(!strcmp(k,"ds")) gr->Cones(*(a[0].d), a[1].s.s,opt);
134 else if(!strcmp(k,"dd")) gr->Cones(*(a[0].d), *(a[1].d), "",opt);
135 else if(!strcmp(k,"dds")) gr->Cones(*(a[0].d), *(a[1].d), a[2].s.s,opt);
136 else if(!strcmp(k,"ddd")) gr->Cones(*(a[0].d), *(a[1].d), *(a[2].d), "",opt);
137 else if(!strcmp(k,"ddds")) gr->Cones(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.s,opt);
138 else res = 1;
139 return res;
140 }
141 //-----------------------------------------------------------------------------
mgls_error(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)142 int static mgls_error(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
143 {
144 int res=0;
145 if(!strcmp(k,"dd")) gr->Error(*(a[0].d),*(a[1].d), "",opt);
146 else if(!strcmp(k,"dds")) gr->Error(*(a[0].d),*(a[1].d), a[2].s.s,opt);
147 else if(!strcmp(k,"ddd")) gr->Error(*(a[0].d),*(a[1].d),*(a[2].d), "",opt);
148 else if(!strcmp(k,"ddds")) gr->Error(*(a[0].d),*(a[1].d),*(a[2].d), a[3].s.s,opt);
149 else if(!strcmp(k,"dddd")) gr->Error(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), "",opt);
150 else if(!strcmp(k,"dddds")) gr->Error(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), a[4].s.s,opt);
151 else res = 1;
152 return res;
153 }
154 //-----------------------------------------------------------------------------
mgls_iris(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)155 int static mgls_iris(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
156 {
157 int res=0;
158 if(!strcmp(k,"ds")) gr->Iris(*(a[0].d),a[1].s.w,"",opt);
159 else if(!strcmp(k,"dss")) gr->Iris(*(a[0].d),a[1].s.w,a[2].s.s,opt);
160 else if(!strcmp(k,"dds")) gr->Iris(*(a[0].d),*(a[1].d),a[2].s.w,"",opt);
161 else if(!strcmp(k,"ddss")) gr->Iris(*(a[0].d),*(a[1].d),a[2].s.w,a[3].s.s,opt);
162 else res = 1;
163 return res;
164 }
165 //-----------------------------------------------------------------------------
mgls_label(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)166 int static mgls_label(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
167 {
168 int res=0;
169 if(!strcmp(k,"ds")) gr->Label(*(a[0].d), a[1].s.w, "",opt);
170 else if(!strcmp(k,"dss")) gr->Label(*(a[0].d), a[1].s.w, a[2].s.s,opt);
171 else if(!strcmp(k,"dds")) gr->Label(*(a[0].d), *(a[1].d), a[2].s.w, "",opt);
172 else if(!strcmp(k,"ddss")) gr->Label(*(a[0].d), *(a[1].d), a[2].s.w, a[3].s.s,opt);
173 else if(!strcmp(k,"ddds")) gr->Label(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.w, "",opt);
174 else if(!strcmp(k,"dddss")) gr->Label(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.w, a[4].s.s,opt);
175 else res = 1;
176 return res;
177 }
178 //-----------------------------------------------------------------------------
mgls_lamerey(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)179 int static mgls_lamerey(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
180 {
181 int res=0;
182 if(!strcmp(k,"nd")) gr->Lamerey(a[0].v,*(a[1].d),"",opt);
183 else if(!strcmp(k,"nds")) gr->Lamerey(a[0].v,*(a[1].d),a[2].s.s,opt);
184 else if(!strcmp(k,"ns")) gr->Lamerey(a[0].v,a[1].s.s,"",opt);
185 else if(!strcmp(k,"nss")) gr->Lamerey(a[0].v,a[1].s.s,a[2].s.s,opt);
186 else res = 1;
187 return res;
188 }
189 //-----------------------------------------------------------------------------
mgls_lines(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)190 int static mgls_lines(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
191 {
192 int res=0;
193 if(!strcmp(k,"dd")) gr->Lines(*(a[0].d),*(a[1].d),"",opt);
194 else if(!strcmp(k,"dds")) gr->Lines(*(a[0].d),*(a[1].d),a[2].s.s,opt);
195 else if(!strcmp(k,"dddd")) gr->Lines(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
196 else if(!strcmp(k,"dddds")) gr->Lines(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,opt);
197 else if(!strcmp(k,"dddddd")) gr->Lines(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),"",opt);
198 else if(!strcmp(k,"dddddds")) gr->Lines(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.s,opt);
199 else res = 1;
200 return res;
201 }
202 //-----------------------------------------------------------------------------
mgls_mark(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)203 int static mgls_mark(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
204 {
205 int res=0;
206 if(!strcmp(k,"dd")) gr->Mark(*(a[0].d), *(a[1].d), "",opt);
207 else if(!strcmp(k,"dds")) gr->Mark(*(a[0].d), *(a[1].d), a[2].s.s,opt);
208 else if(!strcmp(k,"ddd")) gr->Mark(*(a[0].d), *(a[1].d), *(a[2].d), "",opt);
209 else if(!strcmp(k,"ddds")) gr->Mark(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.s,opt);
210 else if(!strcmp(k,"dddd")) gr->Mark(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), "",opt);
211 else if(!strcmp(k,"dddds")) gr->Mark(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), a[4].s.s,opt);
212 else res = 1;
213 return res;
214 }
215 //-----------------------------------------------------------------------------
mgls_ohlc(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)216 int static mgls_ohlc(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
217 {
218 int res=0;
219 if(!strcmp(k,"dddd")) gr->OHLC(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), "",opt);
220 else if(!strcmp(k,"dddds")) gr->OHLC(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), a[4].s.s,opt);
221 else if(!strcmp(k,"ddddd")) gr->OHLC(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d), "",opt);
222 else if(!strcmp(k,"ddddds")) gr->OHLC(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d), a[5].s.s,opt);
223 else res = 1;
224 return res;
225 }
226 //-----------------------------------------------------------------------------
mgls_plot(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)227 int static mgls_plot(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
228 {
229 int res=0;
230 if(!strcmp(k,"d")) gr->Plot(*(a[0].d),"",opt);
231 else if(!strcmp(k,"ds")) gr->Plot(*(a[0].d),a[1].s.s,opt);
232 else if(!strcmp(k,"dd")) gr->Plot(*(a[0].d),*(a[1].d),"",opt);
233 else if(!strcmp(k,"dds")) gr->Plot(*(a[0].d),*(a[1].d),a[2].s.s,opt);
234 else if(!strcmp(k,"ddd")) gr->Plot(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
235 else if(!strcmp(k,"ddds")) gr->Plot(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,opt);
236 else if(!strcmp(k,"nns")) gr->Mark(mglPoint(a[0].v,a[1].v,NAN),a[2].s.s);
237 else if(!strcmp(k,"nnns")) gr->Mark(mglPoint(a[0].v,a[1].v,a[2].v),a[3].s.s);
238 else res = 1;
239 return res;
240 }
241 //-----------------------------------------------------------------------------
mgls_radar(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)242 int static mgls_radar(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
243 {
244 int res=0;
245 if(!strcmp(k,"d")) gr->Radar(*(a[0].d),"",opt);
246 else if(!strcmp(k,"ds")) gr->Radar(*(a[0].d),a[1].s.s,opt);
247 else res = 1;
248 return res;
249 }
250 //-----------------------------------------------------------------------------
mgls_region(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)251 int static mgls_region(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
252 {
253 int res=0;
254 if(!strcmp(k,"dd")) gr->Region(*(a[0].d),*(a[1].d),"",opt);
255 else if(!strcmp(k,"dds")) gr->Region(*(a[0].d),*(a[1].d),a[2].s.s,opt);
256 else if(!strcmp(k,"ddd")) gr->Region(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
257 else if(!strcmp(k,"ddds")) gr->Region(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,opt);
258 else if(!strcmp(k,"dddd")) gr->Region(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
259 else if(!strcmp(k,"dddds")) gr->Region(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,opt);
260 else if(!strcmp(k,"dddddd")) gr->Region(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),"",opt);
261 else if(!strcmp(k,"dddddds")) gr->Region(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.s,opt);
262 else res = 1;
263 return res;
264 }
265 //-----------------------------------------------------------------------------
mgls_stem(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)266 int static mgls_stem(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
267 {
268 int res=0;
269 if(!strcmp(k,"d")) gr->Stem(*(a[0].d),"",opt);
270 else if(!strcmp(k,"ds")) gr->Stem(*(a[0].d),a[1].s.s,opt);
271 else if(!strcmp(k,"dd")) gr->Stem(*(a[0].d),*(a[1].d),"",opt);
272 else if(!strcmp(k,"dds")) gr->Stem(*(a[0].d),*(a[1].d),a[2].s.s,opt);
273 else if(!strcmp(k,"ddd")) gr->Stem(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
274 else if(!strcmp(k,"ddds")) gr->Stem(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,opt);
275 else res = 1;
276 return res;
277 }
278 //-----------------------------------------------------------------------------
mgls_step(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)279 int static mgls_step(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
280 {
281 int res=0;
282 if(!strcmp(k,"d")) gr->Step(*(a[0].d),"",opt);
283 else if(!strcmp(k,"ds")) gr->Step(*(a[0].d),a[1].s.s,opt);
284 else if(!strcmp(k,"dd")) gr->Step(*(a[0].d),*(a[1].d),"",opt);
285 else if(!strcmp(k,"dds")) gr->Step(*(a[0].d),*(a[1].d),a[2].s.s,opt);
286 else if(!strcmp(k,"ddd")) gr->Step(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
287 else if(!strcmp(k,"ddds")) gr->Step(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,opt);
288 else res = 1;
289 return res;
290 }
291 //-----------------------------------------------------------------------------
mgls_table(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)292 int static mgls_table(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
293 {
294 int res=0;
295 if(!strcmp(k,"d")) gr->Table(*(a[0].d), L"", "#|",opt);
296 else if(!strcmp(k,"ds")) gr->Table(*(a[0].d), a[1].s.w, "#|",opt);
297 else if(!strcmp(k,"dss")) gr->Table(*(a[0].d), a[1].s.w, a[2].s.s,opt);
298 else if(!strcmp(k,"nnd")) gr->Table(a[0].v, a[1].v, *(a[2].d), L"", "#|",opt);
299 else if(!strcmp(k,"nnds")) gr->Table(a[0].v, a[1].v, *(a[2].d), a[3].s.w, "#|",opt);
300 else if(!strcmp(k,"nndss")) gr->Table(a[0].v, a[1].v, *(a[2].d), a[3].s.w, a[4].s.s,opt);
301 else res = 1;
302 return res;
303 }
304 //-----------------------------------------------------------------------------
mgls_tape(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)305 int static mgls_tape(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
306 {
307 int res=0;
308 if(!strcmp(k,"d")) gr->Tape(*(a[0].d),"",opt);
309 else if(!strcmp(k,"ds")) gr->Tape(*(a[0].d),a[1].s.s,opt);
310 else if(!strcmp(k,"dd")) gr->Tape(*(a[0].d),*(a[1].d),"",opt);
311 else if(!strcmp(k,"dds")) gr->Tape(*(a[0].d),*(a[1].d),a[2].s.s,opt);
312 else if(!strcmp(k,"ddd")) gr->Tape(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
313 else if(!strcmp(k,"ddds")) gr->Tape(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,opt);
314 else res = 1;
315 return res;
316 }
317 //-----------------------------------------------------------------------------
mgls_tens(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)318 int static mgls_tens(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
319 {
320 int res=0;
321 if(!strcmp(k,"dd")) gr->Tens(*(a[0].d),*(a[1].d), "",opt);
322 else if(!strcmp(k,"dds")) gr->Tens(*(a[0].d),*(a[1].d), a[2].s.s,opt);
323 else if(!strcmp(k,"ddd")) gr->Tens(*(a[0].d),*(a[1].d),*(a[2].d), "",opt);
324 else if(!strcmp(k,"ddds")) gr->Tens(*(a[0].d),*(a[1].d),*(a[2].d), a[3].s.s,opt);
325 else if(!strcmp(k,"dddd")) gr->Tens(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), "",opt);
326 else if(!strcmp(k,"dddds")) gr->Tens(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), a[4].s.s,opt);
327 return res;
328 }
329 //-----------------------------------------------------------------------------
mgls_textmark(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)330 int static mgls_textmark(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
331 {
332 int res=0;
333 if(!strcmp(k,"ds")) gr->TextMark(*(a[0].d),a[1].s.w,"",opt);
334 else if(!strcmp(k,"dss")) gr->TextMark(*(a[0].d),a[1].s.w,a[2].s.s,opt);
335 else if(!strcmp(k,"dds")) gr->TextMark(*(a[0].d),*(a[1].d),a[2].s.w,"",opt);
336 else if(!strcmp(k,"ddss")) gr->TextMark(*(a[0].d),*(a[1].d),a[2].s.w,a[3].s.s,opt);
337 else if(!strcmp(k,"ddds")) gr->TextMark(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.w,"",opt);
338 else if(!strcmp(k,"dddss")) gr->TextMark(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.w,a[4].s.s,opt);
339 else if(!strcmp(k,"dddds")) gr->TextMark(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.w,"",opt);
340 else if(!strcmp(k,"ddddss"))gr->TextMark(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.w,a[5].s.s,opt);
341 else res = 1;
342 return res;
343 }
344 //-----------------------------------------------------------------------------
mgls_torus(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)345 int static mgls_torus(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
346 {
347 int res=0;
348 if(!strcmp(k,"dd")) gr->Torus(*(a[0].d),*(a[1].d),"",opt);
349 else if(!strcmp(k,"dds")) gr->Torus(*(a[0].d),*(a[1].d),a[2].s.s,opt);
350 else res = 1;
351 return res;
352 }
353 //-----------------------------------------------------------------------------
mgls_tube(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)354 int static mgls_tube(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
355 {
356 int res=0;
357 if(!strcmp(k,"dn"))
358 gr->Tube(*(a[0].d),a[1].v,"",opt);
359 else if(!strcmp(k,"dns"))
360 gr->Tube(*(a[0].d),a[1].v,a[2].s.s,opt);
361 else if(!strcmp(k,"dd"))
362 gr->Tube(*(a[0].d),*(a[1].d),"",opt);
363 else if(!strcmp(k,"dds"))
364 gr->Tube(*(a[0].d),*(a[1].d),a[2].s.s,opt);
365 else if(!strcmp(k,"ddn"))
366 gr->Tube(*(a[0].d),*(a[1].d),a[2].v,"",opt);
367 else if(!strcmp(k,"ddns"))
368 gr->Tube(*(a[0].d),*(a[1].d),a[2].v,a[3].s.s,opt);
369 else if(!strcmp(k,"ddd"))
370 gr->Tube(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
371 else if(!strcmp(k,"ddds"))
372 gr->Tube(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,opt);
373 else if(!strcmp(k,"dddn"))
374 gr->Tube(*(a[0].d),*(a[1].d),*(a[2].d),a[3].v,"",opt);
375 else if(!strcmp(k,"dddns"))
376 gr->Tube(*(a[0].d),*(a[1].d),*(a[2].d),a[3].v,a[4].s.s,opt);
377 else if(!strcmp(k,"dddd"))
378 gr->Tube(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
379 else if(!strcmp(k,"dddds"))
380 gr->Tube(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,opt);
381 else res = 1;
382 return res;
383 }
384 //-----------------------------------------------------------------------------
385 // 2D
386 //-----------------------------------------------------------------------------
mgls_belt(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)387 int static mgls_belt(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
388 {
389 int res=0;
390 if(!strcmp(k,"d")) gr->Belt(*(a[0].d),"",opt);
391 else if(!strcmp(k,"ds")) gr->Belt(*(a[0].d),a[1].s.s,opt);
392 else if(!strcmp(k,"ddd")) gr->Belt(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
393 else if(!strcmp(k,"ddds")) gr->Belt(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,opt);
394 else res = 1;
395 return res;
396 }
397 //-----------------------------------------------------------------------------
mgls_beltc(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)398 int static mgls_beltc(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
399 {
400 int res=0;
401 if(!strcmp(k,"dd")) gr->BeltC(*(a[0].d),*(a[1].d),"",opt);
402 else if(!strcmp(k,"dds")) gr->BeltC(*(a[0].d),*(a[1].d),a[2].s.s,opt);
403 else if(!strcmp(k,"dddd")) gr->BeltC(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
404 else if(!strcmp(k,"dddds")) gr->BeltC(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,opt);
405 else res = 1;
406 return res;
407 }
408 //-----------------------------------------------------------------------------
mgls_boxs(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)409 int static mgls_boxs(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
410 {
411 int res=0;
412 if(!strcmp(k,"d")) gr->Boxs(*(a[0].d),"",opt);
413 else if(!strcmp(k,"ds")) gr->Boxs(*(a[0].d),a[1].s.s,opt);
414 else if(!strcmp(k,"ddd")) gr->Boxs(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
415 else if(!strcmp(k,"ddds")) gr->Boxs(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,opt);
416 else res = 1;
417 return res;
418 }
419 //-----------------------------------------------------------------------------
mgls_cont(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)420 int static mgls_cont(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
421 {
422 int res=0;
423 mglData v; v.a[0]=a[0].v;
424 if(!strcmp(k,"d")) gr->Cont(*(a[0].d),"",opt);
425 else if(!strcmp(k,"ds")) gr->Cont(*(a[0].d),a[1].s.s,opt);
426 else if(!strcmp(k,"dd")) gr->Cont(*(a[0].d), *(a[1].d), "",opt);
427 else if(!strcmp(k,"dds")) gr->Cont(*(a[0].d), *(a[1].d), a[2].s.s,opt);
428 else if(!strcmp(k,"nd")) gr->Cont(v, *(a[1].d), "",opt);
429 else if(!strcmp(k,"nds")) gr->Cont(v, *(a[1].d), a[2].s.s,opt);
430 else if(!strcmp(k,"ddd")) gr->Cont(*(a[0].d), *(a[1].d), *(a[2].d), "",opt);
431 else if(!strcmp(k,"ddds")) gr->Cont(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.s,opt);
432 else if(!strcmp(k,"dddd")) gr->Cont(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), "",opt);
433 else if(!strcmp(k,"dddds")) gr->Cont(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), a[4].s.s,opt);
434 else if(!strcmp(k,"nddd")) gr->Cont(v, *(a[1].d), *(a[2].d), *(a[3].d), "",opt);
435 else if(!strcmp(k,"nddds")) gr->Cont(v, *(a[1].d), *(a[2].d), *(a[3].d), a[4].s.s,opt);
436 else if(!strcmp(k,"ndddd")) gr->ContGen(a[0].v, *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d),"",opt);
437 else if(!strcmp(k,"ndddds"))gr->ContGen(a[0].v, *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), a[5].s.s,opt);
438 else res = 1;
439 return res;
440 }
441 //-----------------------------------------------------------------------------
mgls_contd(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)442 int static mgls_contd(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
443 {
444 int res=0;
445 mglData v; v.a[0]=a[0].v;
446 if(!strcmp(k,"d")) gr->ContD(*(a[0].d),"",opt);
447 else if(!strcmp(k,"ds")) gr->ContD(*(a[0].d),a[1].s.s,opt);
448 else if(!strcmp(k,"dd")) gr->ContD(*(a[0].d), *(a[1].d), "",opt);
449 else if(!strcmp(k,"dds")) gr->ContD(*(a[0].d), *(a[1].d), a[2].s.s,opt);
450 else if(!strcmp(k,"nd")) gr->ContD(v, *(a[1].d), "",opt);
451 else if(!strcmp(k,"nds")) gr->ContD(v, *(a[1].d), a[2].s.s,opt);
452 else if(!strcmp(k,"ddd")) gr->ContD(*(a[0].d), *(a[1].d), *(a[2].d), "",opt);
453 else if(!strcmp(k,"ddds")) gr->ContD(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.s,opt);
454 else if(!strcmp(k,"dddd")) gr->ContD(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), "",opt);
455 else if(!strcmp(k,"dddds")) gr->ContD(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), a[4].s.s,opt);
456 else if(!strcmp(k,"nddd")) gr->ContD(v, *(a[1].d), *(a[2].d), *(a[3].d), "",opt);
457 else if(!strcmp(k,"nddds")) gr->ContD(v, *(a[1].d), *(a[2].d), *(a[3].d), a[4].s.s,opt);
458 else res = 1;
459 return res;
460 }
461 //-----------------------------------------------------------------------------
mgls_contf(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)462 int static mgls_contf(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
463 {
464 int res=0;
465 if(!strcmp(k,"d")) gr->ContF(*(a[0].d),"",opt);
466 else if(!strcmp(k,"ds")) gr->ContF(*(a[0].d),a[1].s.s,opt);
467 else if(!strcmp(k,"dd")) gr->ContF(*(a[0].d), *(a[1].d), "",opt);
468 else if(!strcmp(k,"dds")) gr->ContF(*(a[0].d), *(a[1].d), a[2].s.s,opt);
469 else if(!strcmp(k,"ddd")) gr->ContF(*(a[0].d), *(a[1].d), *(a[2].d), "",opt);
470 else if(!strcmp(k,"ddds")) gr->ContF(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.s,opt);
471 else if(!strcmp(k,"dddd")) gr->ContF(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), "",opt);
472 else if(!strcmp(k,"dddds")) gr->ContF(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), a[4].s.s,opt);
473 else if(!strcmp(k,"nndddd")) gr->ContFGen(a[0].v, a[1].v, *(a[2].d), *(a[3].d), *(a[4].d), *(a[5].d),"",opt);
474 else if(!strcmp(k,"nndddds")) gr->ContFGen(a[0].v, a[1].v, *(a[2].d), *(a[3].d), *(a[4].d), *(a[5].d), a[6].s.s,opt);
475 else res = 1;
476 return res;
477 }
478 //-----------------------------------------------------------------------------
mgls_contp(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)479 int static mgls_contp(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
480 {
481 int res=0;
482 mglData v; v.a[0]=a[0].v;
483 if(!strcmp(k,"dddd")) gr->ContP(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), "",opt);
484 else if(!strcmp(k,"dddds")) gr->ContP(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), a[4].s.s,opt);
485 else if(!strcmp(k,"ddddd")) gr->ContP(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), "",opt);
486 else if(!strcmp(k,"ddddds")) gr->ContP(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), a[5].s.s,opt);
487 else if(!strcmp(k,"ndddd")) gr->ContP(v, *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), "",opt);
488 else if(!strcmp(k,"ndddds")) gr->ContP(v, *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), a[5].s.s,opt);
489 else res = 1;
490 return res;
491 }
492 //-----------------------------------------------------------------------------
mgls_contv(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)493 int static mgls_contv(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
494 {
495 int res=0;
496 mglData v; v.a[0]=a[0].v;
497 if(!strcmp(k,"d")) gr->ContV(*(a[0].d),"",opt);
498 else if(!strcmp(k,"ds")) gr->ContV(*(a[0].d),a[1].s.s,opt);
499 else if(!strcmp(k,"dd")) gr->ContV(*(a[0].d), *(a[1].d), "",opt);
500 else if(!strcmp(k,"dds")) gr->ContV(*(a[0].d), *(a[1].d), a[2].s.s,opt);
501 else if(!strcmp(k,"nd")) gr->ContV(v, *(a[1].d), "",opt);
502 else if(!strcmp(k,"nds")) gr->ContV(v, *(a[1].d), a[2].s.s,opt);
503 else if(!strcmp(k,"ddd")) gr->ContV(*(a[0].d), *(a[1].d), *(a[2].d), "",opt);
504 else if(!strcmp(k,"ddds")) gr->ContV(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.s,opt);
505 else if(!strcmp(k,"dddd")) gr->ContV(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), "",opt);
506 else if(!strcmp(k,"dddds")) gr->ContV(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), a[4].s.s,opt);
507 else if(!strcmp(k,"nddd")) gr->ContV(v, *(a[1].d), *(a[2].d), *(a[3].d), "",opt);
508 else if(!strcmp(k,"nddds")) gr->ContV(v, *(a[1].d), *(a[2].d), *(a[3].d), a[4].s.s,opt);
509 else res = 1;
510 return res;
511 }
512 //-----------------------------------------------------------------------------
mgls_dens(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)513 int static mgls_dens(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
514 {
515 int res=0;
516 if(!strcmp(k,"d")) gr->Dens(*(a[0].d),"",opt);
517 else if(!strcmp(k,"ds")) gr->Dens(*(a[0].d),a[1].s.s,opt);
518 else if(!strcmp(k,"ddd")) gr->Dens(*(a[0].d), *(a[1].d), *(a[2].d), "",opt);
519 else if(!strcmp(k,"ddds")) gr->Dens(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.s,opt);
520 else res = 1;
521 return res;
522 }
523 //-----------------------------------------------------------------------------
mgls_fall(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)524 int static mgls_fall(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
525 {
526 int res=0;
527 if(!strcmp(k,"d")) gr->Fall(*(a[0].d),"",opt);
528 else if(!strcmp(k,"ds")) gr->Fall(*(a[0].d),a[1].s.s,opt);
529 else if(!strcmp(k,"ddd")) gr->Fall(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
530 else if(!strcmp(k,"ddds")) gr->Fall(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,opt);
531 else res = 1;
532 return res;
533 }
534 //-----------------------------------------------------------------------------
mgls_grid2(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)535 int static mgls_grid2(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
536 {
537 int res=0;
538 if(!strcmp(k,"d")) gr->Grid(*(a[0].d),"",opt);
539 else if(!strcmp(k,"ds")) gr->Grid(*(a[0].d),a[1].s.s,opt);
540 else if(!strcmp(k,"ddd")) gr->Grid(*(a[0].d), *(a[1].d), *(a[2].d), "",opt);
541 else if(!strcmp(k,"ddds")) gr->Grid(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.s,opt);
542 else res = 1;
543 return res;
544 }
545 //-----------------------------------------------------------------------------
mgls_map(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)546 int static mgls_map(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
547 {
548 int res=0;
549 if(!strcmp(k,"dd")) gr->Map(*(a[0].d),*(a[1].d),"",opt);
550 else if(!strcmp(k,"dds")) gr->Map(*(a[0].d),*(a[1].d),a[2].s.s,opt);
551 else if(!strcmp(k,"dddd")) gr->Map(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
552 else if(!strcmp(k,"dddds")) gr->Map(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,opt);
553 else res = 1;
554 return res;
555 }
556 //-----------------------------------------------------------------------------
mgls_mesh(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)557 int static mgls_mesh(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
558 {
559 int res=0;
560 if(!strcmp(k,"d")) gr->Mesh(*(a[0].d),"",opt);
561 else if(!strcmp(k,"ds")) gr->Mesh(*(a[0].d),a[1].s.s,opt);
562 else if(!strcmp(k,"ddd")) gr->Mesh(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
563 else if(!strcmp(k,"ddds")) gr->Mesh(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,opt);
564 else res = 1;
565 return res;
566 }
567 //-----------------------------------------------------------------------------
mgls_pmap(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)568 int static mgls_pmap(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
569 {
570 int res=0;
571 if(!strcmp(k,"dd")) gr->Pmap(*(a[0].d), *(a[1].d), "",opt);
572 else if(!strcmp(k,"dds")) gr->Pmap(*(a[0].d), *(a[1].d), a[2].s.s,opt);
573 else if(!strcmp(k,"ddd")) gr->Pmap(*(a[0].d), *(a[1].d), *(a[2].d), "",opt);
574 else if(!strcmp(k,"ddds")) gr->Pmap(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.s,opt);
575 else if(!strcmp(k,"dddd")) gr->Pmap(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), "",opt);
576 else if(!strcmp(k,"dddds")) gr->Pmap(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), a[4].s.s,opt);
577 else res = 1;
578 return res;
579 }
580 //-----------------------------------------------------------------------------
mgls_stfa(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)581 int static mgls_stfa(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
582 {
583 int res=0;
584 if(!strcmp(k,"ddn"))
585 gr->STFA(*(a[0].d),*(a[1].d), mgl_int(a[2].v), "",opt);
586 else if(!strcmp(k,"ddns"))
587 gr->STFA(*(a[0].d),*(a[1].d), mgl_int(a[2].v), a[3].s.s,opt);
588 else if(!strcmp(k,"ddddn"))
589 gr->STFA(*(a[0].d),*(a[1].d), *(a[2].d),*(a[3].d), mgl_int(a[4].v), "",opt);
590 else if(!strcmp(k,"ddddns"))
591 gr->STFA(*(a[0].d),*(a[1].d), *(a[2].d),*(a[3].d), mgl_int(a[4].v), a[5].s.s,opt);
592 else res = 1;
593 return res;
594 }
595 //-----------------------------------------------------------------------------
mgls_surf(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)596 int static mgls_surf(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
597 {
598 int res=0;
599 if(!strcmp(k,"d")) gr->Surf(*(a[0].d),"",opt);
600 else if(!strcmp(k,"ds")) gr->Surf(*(a[0].d),a[1].s.s,opt);
601 else if(!strcmp(k,"ddd")) gr->Surf(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
602 else if(!strcmp(k,"ddds")) gr->Surf(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,opt);
603 else res = 1;
604 return res;
605 }
606 //-----------------------------------------------------------------------------
mgls_surfc(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)607 int static mgls_surfc(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
608 {
609 int res=0;
610 if(!strcmp(k,"dd")) gr->SurfC(*(a[0].d),*(a[1].d),"",opt);
611 else if(!strcmp(k,"dds")) gr->SurfC(*(a[0].d),*(a[1].d),a[2].s.s,opt);
612 else if(!strcmp(k,"dddd")) gr->SurfC(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
613 else if(!strcmp(k,"dddds")) gr->SurfC(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,opt);
614 else res = 1;
615 return res;
616 }
617 //-----------------------------------------------------------------------------
mgls_surfa(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)618 int static mgls_surfa(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
619 {
620 int res=0;
621 if(!strcmp(k,"dd")) gr->SurfA(*(a[0].d),*(a[1].d),"",opt);
622 else if(!strcmp(k,"dds")) gr->SurfA(*(a[0].d),*(a[1].d),a[2].s.s,opt);
623 else if(!strcmp(k,"dddd")) gr->SurfA(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
624 else if(!strcmp(k,"dddds")) gr->SurfA(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,opt);
625 else res = 1;
626 return res;
627 }
628 //-----------------------------------------------------------------------------
mgls_surfca(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)629 int static mgls_surfca(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
630 {
631 int res=0;
632 if(!strcmp(k,"ddd")) gr->SurfCA(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
633 else if(!strcmp(k,"ddds")) gr->SurfCA(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,opt);
634 else if(!strcmp(k,"ddddd")) gr->SurfCA(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),"",opt);
635 else if(!strcmp(k,"ddddds"))gr->SurfCA(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[5].s.s,opt);
636 else res = 1;
637 return res;
638 }
639 //-----------------------------------------------------------------------------
mgls_tile(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)640 int static mgls_tile(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
641 {
642 int res=0;
643 if(!strcmp(k,"d")) gr->Tile(*(a[0].d),"",opt);
644 else if(!strcmp(k,"ds")) gr->Tile(*(a[0].d),a[1].s.s,opt);
645 else if(!strcmp(k,"ddd")) gr->Tile(*(a[0].d), *(a[1].d), *(a[2].d), "",opt);
646 else if(!strcmp(k,"ddds")) gr->Tile(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.s,opt);
647 else if(!strcmp(k,"dddd")) gr->Tile(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), "",opt);
648 else if(!strcmp(k,"dddds")) gr->Tile(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), a[4].s.s,opt);
649 else res = 1;
650 return res;
651 }
652 //-----------------------------------------------------------------------------
mgls_tiles(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)653 int static mgls_tiles(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
654 {
655 int res=0;
656 if(!strcmp(k,"dd")) gr->TileS(*(a[0].d),*(a[1].d),"",opt);
657 else if(!strcmp(k,"dds")) gr->TileS(*(a[0].d),*(a[1].d),a[2].s.s,opt);
658 else if(!strcmp(k,"dddd")) gr->TileS(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
659 else if(!strcmp(k,"dddds")) gr->TileS(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,opt);
660 else if(!strcmp(k,"ddddd")) gr->TileS(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),"",opt);
661 else if(!strcmp(k,"ddddds")) gr->TileS(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[5].s.s,opt);
662 else res = 1;
663 return res;
664 }
665 //-----------------------------------------------------------------------------
mgls_triplot(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)666 int static mgls_triplot(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
667 {
668 int res=0;
669 if(!strcmp(k,"ddd")) gr->TriPlot(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
670 else if(!strcmp(k,"ddds")) gr->TriPlot(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,opt);
671 else if(!strcmp(k,"dddd")) gr->TriPlot(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
672 else if(!strcmp(k,"dddds")) gr->TriPlot(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,opt);
673 else if(!strcmp(k,"ddddd")) gr->TriPlot(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),"",opt);
674 else if(!strcmp(k,"ddddds"))gr->TriPlot(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[5].s.s,opt);
675 else res = 1;
676 return res;
677 }
678 //-----------------------------------------------------------------------------
mgls_quadplot(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)679 int static mgls_quadplot(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
680 {
681 int res=0;
682 if(!strcmp(k,"ddd")) gr->QuadPlot(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
683 else if(!strcmp(k,"ddds")) gr->QuadPlot(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,opt);
684 else if(!strcmp(k,"dddd")) gr->QuadPlot(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
685 else if(!strcmp(k,"dddds")) gr->QuadPlot(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,opt);
686 else if(!strcmp(k,"ddddd")) gr->QuadPlot(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),"",opt);
687 else if(!strcmp(k,"ddddds"))gr->QuadPlot(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[5].s.s,opt);
688 else res = 1;
689 return res;
690 }
691 //-----------------------------------------------------------------------------
mgls_tricont(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)692 int static mgls_tricont(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
693 {
694 int res=0;
695 mglData v; v.a[0]=a[0].v;
696 if(!strcmp(k,"dddd"))
697 gr->TriCont(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
698 else if(!strcmp(k,"dddds"))
699 gr->TriCont(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,opt);
700 else if(!strcmp(k,"ddddd"))
701 gr->TriContV(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),"",opt);
702 else if(!strcmp(k,"ddddds"))
703 gr->TriContV(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[5].s.s,opt);
704 else if(!strcmp(k,"dddddd"))
705 gr->TriCont(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),"",opt);
706 else if(!strcmp(k,"dddddds"))
707 gr->TriCont(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.s,opt);
708 else if(!strcmp(k,"ndddd"))
709 gr->TriContV(v,*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),"",opt);
710 else if(!strcmp(k,"ndddds"))
711 gr->TriContV(v,*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[5].s.s,opt);
712 else if(!strcmp(k,"nddddd"))
713 gr->TriCont(v,*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),"",opt);
714 else if(!strcmp(k,"nddddds"))
715 gr->TriCont(v,*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.s,opt);
716 else res = 1;
717 return res;
718 }
719 //-----------------------------------------------------------------------------
mgls_tricontv(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)720 int static mgls_tricontv(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
721 {
722 int res=0;
723 mglData v; v.a[0]=a[0].v;
724 if(!strcmp(k,"dddd"))
725 gr->TriContVt(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
726 else if(!strcmp(k,"dddds"))
727 gr->TriContVt(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,opt);
728 else if(!strcmp(k,"ddddd"))
729 gr->TriContVt(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),"",opt);
730 else if(!strcmp(k,"ddddds"))
731 gr->TriContVt(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[5].s.s,opt);
732 else if(!strcmp(k,"dddddd"))
733 gr->TriContVt(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),"",opt);
734 else if(!strcmp(k,"dddddds"))
735 gr->TriContVt(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.s,opt);
736 else if(!strcmp(k,"nddddd"))
737 gr->TriContVt(v,*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),"",opt);
738 else if(!strcmp(k,"nddddds"))
739 gr->TriContVt(v,*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.s,opt);
740 else res = 1;
741 return res;
742 }
743 //-----------------------------------------------------------------------------
744 // 3D
745 //-----------------------------------------------------------------------------
mgls_beam(mglGraph * gr,long,mglArg * a,const char * k,const char *)746 int static mgls_beam(mglGraph *gr, long , mglArg *a, const char *k, const char *) // NOTE beam can be made obsolete ???
747 {
748 int res=0;
749 if(!strcmp(k,"ddddn"))
750 gr->Beam(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].v,"",0, 3);
751 else if(!strcmp(k,"ddddns"))
752 gr->Beam(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].v,a[5].s.s,0, 3);
753 else if(!strcmp(k,"ddddnsn"))
754 gr->Beam(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].v,a[5].s.s,mgl_int(a[6].v), 3);
755 else if(!strcmp(k,"ddddnsnn"))
756 gr->Beam(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].v,a[5].s.s,mgl_int(a[6].v), mgl_int(a[7].v));
757 else if(!strcmp(k,"nddddn"))
758 gr->Beam(a[0].v,*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[5].v,"",0);
759 else if(!strcmp(k,"nddddns"))
760 gr->Beam(a[0].v,*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[5].v,a[6].s.s,0);
761 else if(!strcmp(k,"nddddnsn"))
762 gr->Beam(a[0].v,*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[5].v,a[6].s.s,mgl_int(a[7].v));
763 else res = 1;
764 return res;
765 }
766 //-----------------------------------------------------------------------------
mgls_cloud(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)767 int static mgls_cloud(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
768 {
769 int res=0;
770 if(!strcmp(k,"d")) gr->Cloud(*(a[0].d),"",opt);
771 else if(!strcmp(k,"ds")) gr->Cloud(*(a[0].d),a[1].s.s,opt);
772 else if(!strcmp(k,"dddd")) gr->Cloud(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
773 else if(!strcmp(k,"dddds")) gr->Cloud(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,opt);
774 else res = 1;
775 return res;
776 }
777 //-----------------------------------------------------------------------------
mgls_cont3(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)778 int static mgls_cont3(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
779 {
780 int res=0;
781 mglData v; v.a[0]=a[0].v;
782 if(!strcmp(k,"d")) gr->Cont3(*(a[0].d), "", -1,opt);
783 else if(!strcmp(k,"ds")) gr->Cont3(*(a[0].d), a[1].s.s, -1,opt);
784 else if(!strcmp(k,"dsn")) gr->Cont3(*(a[0].d), a[1].s.s, mgl_int(a[2].v),opt);
785 else if(!strcmp(k,"dd")) gr->Cont3(*(a[0].d), *(a[1].d), "", -1,opt);
786 else if(!strcmp(k,"dds")) gr->Cont3(*(a[0].d), *(a[1].d), a[2].s.s,-1,opt);
787 else if(!strcmp(k,"ddsn")) gr->Cont3(*(a[0].d), *(a[1].d), a[2].s.s,mgl_int(a[3].v),opt);
788 else if(!strcmp(k,"nd")) gr->Cont3(v, *(a[1].d), "", -1,opt);
789 else if(!strcmp(k,"nds")) gr->Cont3(v, *(a[1].d), a[2].s.s,-1,opt);
790 else if(!strcmp(k,"ndsn")) gr->Cont3(v, *(a[1].d), a[2].s.s,mgl_int(a[3].v),opt);
791 else if(!strcmp(k,"dddd")) gr->Cont3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), "", -1,opt);
792 else if(!strcmp(k,"dddds")) gr->Cont3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), a[4].s.s,-1,opt);
793 else if(!strcmp(k,"ddddsn"))gr->Cont3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), a[4].s.s,mgl_int(a[5].v),opt);
794 else if(!strcmp(k,"ddddd")) gr->Cont3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), "", -1,opt);
795 else if(!strcmp(k,"ddddds")) gr->Cont3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), a[5].s.s,-1,opt);
796 else if(!strcmp(k,"dddddsn")) gr->Cont3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), a[5].s.s,mgl_int(a[6].v),opt);
797 else if(!strcmp(k,"ndddd")) gr->Cont3(v, *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), "", -1,opt);
798 else if(!strcmp(k,"ndddds")) gr->Cont3(v, *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), a[5].s.s,-1,opt);
799 else if(!strcmp(k,"nddddsn")) gr->Cont3(v, *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), a[5].s.s,mgl_int(a[6].v),opt);
800 else res = 1;
801 return res;
802 }
803 //-----------------------------------------------------------------------------
mgls_contf3(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)804 int static mgls_contf3(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
805 {
806 int res=0;
807 if(!strcmp(k,"d")) gr->ContF3(*(a[0].d), "", -1,opt);
808 else if(!strcmp(k,"ds")) gr->ContF3(*(a[0].d), a[1].s.s, -1,opt);
809 else if(!strcmp(k,"dsn")) gr->ContF3(*(a[0].d), a[1].s.s, mgl_int(a[2].v),opt);
810 else if(!strcmp(k,"dd")) gr->ContF3(*(a[0].d), *(a[1].d), "", -1,opt);
811 else if(!strcmp(k,"dds")) gr->ContF3(*(a[0].d), *(a[1].d), a[2].s.s,-1,opt);
812 else if(!strcmp(k,"ddsn")) gr->ContF3(*(a[0].d), *(a[1].d), a[2].s.s,mgl_int(a[3].v),opt);
813 else if(!strcmp(k,"dddd")) gr->ContF3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), "", -1,opt);
814 else if(!strcmp(k,"dddds")) gr->ContF3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), a[4].s.s,-1,opt);
815 else if(!strcmp(k,"ddddsn")) gr->ContF3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), a[4].s.s,mgl_int(a[5].v),opt);
816 else if(!strcmp(k,"ddddd")) gr->ContF3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), "", -1,opt);
817 else if(!strcmp(k,"ddddds")) gr->ContF3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), a[5].s.s,-1,opt);
818 else if(!strcmp(k,"dddddsn"))gr->ContF3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), a[5].s.s,mgl_int(a[6].v),opt);
819 else res = 1;
820 return res;
821 }
822 //-----------------------------------------------------------------------------
mgls_contx(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)823 int static mgls_contx(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
824 {
825 int res=0;
826 if(!strcmp(k,"d")) gr->ContX(*(a[0].d),"",NAN,opt);
827 else if(!strcmp(k,"ds")) gr->ContX(*(a[0].d),a[1].s.s,NAN,opt);
828 else if(!strcmp(k,"dsn")) gr->ContX(*(a[0].d),a[1].s.s,a[2].v,opt);
829 else res = 1;
830 return res;
831 }
832 //-----------------------------------------------------------------------------
mgls_contfx(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)833 int static mgls_contfx(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
834 {
835 int res=0;
836 if(!strcmp(k,"d")) gr->ContFX(*(a[0].d),"",NAN,opt);
837 else if(!strcmp(k,"ds")) gr->ContFX(*(a[0].d),a[1].s.s,NAN,opt);
838 else if(!strcmp(k,"dsn")) gr->ContFX(*(a[0].d),a[1].s.s,a[2].v,opt);
839 else res = 1;
840 return res;
841 }
842 //-----------------------------------------------------------------------------
mgls_conty(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)843 int static mgls_conty(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
844 {
845 int res=0;
846 if(!strcmp(k,"d")) gr->ContY(*(a[0].d),"",NAN,opt);
847 else if(!strcmp(k,"ds")) gr->ContY(*(a[0].d),a[1].s.s,NAN,opt);
848 else if(!strcmp(k,"dsn")) gr->ContY(*(a[0].d),a[1].s.s,a[2].v,opt);
849 else res = 1;
850 return res;
851 }
852 //-----------------------------------------------------------------------------
mgls_contfy(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)853 int static mgls_contfy(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
854 {
855 int res=0;
856 if(!strcmp(k,"d")) gr->ContFY(*(a[0].d),"",NAN,opt);
857 else if(!strcmp(k,"ds")) gr->ContFY(*(a[0].d),a[1].s.s,NAN,opt);
858 else if(!strcmp(k,"dsn")) gr->ContFY(*(a[0].d),a[1].s.s,a[2].v,opt);
859 else res = 1;
860 return res;
861 }
862 //-----------------------------------------------------------------------------
mgls_contz(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)863 int static mgls_contz(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
864 {
865 int res=0;
866 if(!strcmp(k,"d")) gr->ContZ(*(a[0].d),"",NAN,opt);
867 else if(!strcmp(k,"ds")) gr->ContZ(*(a[0].d),a[1].s.s,NAN,opt);
868 else if(!strcmp(k,"dsn")) gr->ContZ(*(a[0].d),a[1].s.s,a[2].v,opt);
869 else res = 1;
870 return res;
871 }
872 //-----------------------------------------------------------------------------
mgls_contfz(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)873 int static mgls_contfz(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
874 {
875 int res=0;
876 if(!strcmp(k,"d")) gr->ContFZ(*(a[0].d),"",NAN,opt);
877 else if(!strcmp(k,"ds")) gr->ContFZ(*(a[0].d),a[1].s.s,NAN,opt);
878 else if(!strcmp(k,"dsn")) gr->ContFZ(*(a[0].d),a[1].s.s,a[2].v,opt);
879 else res = 1;
880 return res;
881 }
882 //-----------------------------------------------------------------------------
mgls_crust(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)883 int static mgls_crust(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
884 {
885 int res=0;
886 if(!strcmp(k,"ddd")) gr->Crust(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
887 else if(!strcmp(k,"ddds")) gr->Crust(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,opt);
888 else res = 1;
889 return res;
890 }
891 //-----------------------------------------------------------------------------
mgls_dcont(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)892 int static mgls_dcont(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
893 {
894 int res=0;
895 mglData v; v.a[0]=a[0].v;
896 if(!strcmp(k,"dd")) gr->DCont(*(a[0].d), *(a[1].d), "", opt);
897 else if(!strcmp(k,"dds")) gr->DCont(*(a[0].d), *(a[1].d), a[2].s.s, opt);
898 else if(!strcmp(k,"ddd")) gr->DCont(*(a[0].d), *(a[1].d), *(a[2].d), "", opt);
899 else if(!strcmp(k,"ddds")) gr->DCont(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.s, opt);
900 else if(!strcmp(k,"ndd")) gr->DCont(v, *(a[1].d), *(a[2].d), "", opt);
901 else if(!strcmp(k,"ndds")) gr->DCont(v, *(a[1].d), *(a[2].d), a[3].s.s, opt);
902 else if(!strcmp(k,"ddddd")) gr->DCont(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), "", opt);
903 else if(!strcmp(k,"ddddds")) gr->DCont(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), a[5].s.s, opt);
904 else if(!strcmp(k,"dddddd")) gr->DCont(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), *(a[5].d), "", opt);
905 else if(!strcmp(k,"dddddds")) gr->DCont(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), *(a[5].d), a[6].s.s, opt);
906 else if(!strcmp(k,"nddddd")) gr->DCont(v, *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), *(a[5].d), "", opt);
907 else if(!strcmp(k,"nddddds")) gr->DCont(v, *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), *(a[5].d), a[6].s.s, opt);
908 else res = 1;
909 return res;
910 }
911 //-----------------------------------------------------------------------------
mgls_dens3(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)912 int static mgls_dens3(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
913 {
914 int res=0;
915 if(!strcmp(k,"d")) gr->Dens3(*(a[0].d),"",-1,opt);
916 else if(!strcmp(k,"ds")) gr->Dens3(*(a[0].d),a[1].s.s,-1,opt);
917 else if(!strcmp(k,"dsn")) gr->Dens3(*(a[0].d),a[1].s.s,mgl_int(a[2].v),opt);
918 else if(!strcmp(k,"dddd")) gr->Dens3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"", -1,opt);
919 else if(!strcmp(k,"dddds")) gr->Dens3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,-1,opt);
920 else if(!strcmp(k,"ddddsn")) gr->Dens3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,mgl_int(a[5].v),opt);
921 else res = 1;
922 return res;
923 }
924 //-----------------------------------------------------------------------------
mgls_densx(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)925 int static mgls_densx(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
926 {
927 int res=0;
928 if(!strcmp(k,"d")) gr->DensX(*(a[0].d),"",NAN,opt);
929 else if(!strcmp(k,"ds")) gr->DensX(*(a[0].d),a[1].s.s,NAN,opt);
930 else if(!strcmp(k,"dsn")) gr->DensX(*(a[0].d),a[1].s.s,a[2].v,opt);
931 else res = 1;
932 return res;
933 }
934 //-----------------------------------------------------------------------------
mgls_densy(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)935 int static mgls_densy(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
936 {
937 int res=0;
938 if(!strcmp(k,"d")) gr->DensY(*(a[0].d),"",NAN,opt);
939 else if(!strcmp(k,"ds")) gr->DensY(*(a[0].d),a[1].s.s,NAN,opt);
940 else if(!strcmp(k,"dsn")) gr->DensY(*(a[0].d),a[1].s.s,a[2].v,opt);
941 else res = 1;
942 return res;
943 }
944 //-----------------------------------------------------------------------------
mgls_densz(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)945 int static mgls_densz(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
946 {
947 int res=0;
948 if(!strcmp(k,"d")) gr->DensZ(*(a[0].d),"",NAN,opt);
949 else if(!strcmp(k,"ds")) gr->DensZ(*(a[0].d),a[1].s.s,NAN,opt);
950 else if(!strcmp(k,"dsn")) gr->DensZ(*(a[0].d),a[1].s.s,a[2].v,opt);
951 else res = 1;
952 return res;
953 }
954 //-----------------------------------------------------------------------------
mgls_dots(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)955 int static mgls_dots(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
956 {
957 int res=0;
958 if(!strcmp(k,"ddd")) gr->Dots(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
959 else if(!strcmp(k,"ddds")) gr->Dots(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,opt);
960 else if(!strcmp(k,"dddd")) gr->Dots(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
961 else if(!strcmp(k,"dddds")) gr->Dots(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,opt);
962 else if(!strcmp(k,"ddddd")) gr->Dots(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),"",opt);
963 else if(!strcmp(k,"ddddds"))gr->Dots(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[5].s.s,opt);
964 else res = 1;
965 return res;
966 }
967 //-----------------------------------------------------------------------------
mgls_grid3(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)968 int static mgls_grid3(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
969 {
970 int res=0;
971 if(!strcmp(k,"d")) gr->Grid3(*(a[0].d),"",-1,opt);
972 else if(!strcmp(k,"ds")) gr->Grid3(*(a[0].d),a[1].s.s,-1,opt);
973 else if(!strcmp(k,"dsn")) gr->Grid3(*(a[0].d),a[1].s.s,mgl_int(a[2].v),opt);
974 else if(!strcmp(k,"dddd")) gr->Grid3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",-1,opt);
975 else if(!strcmp(k,"dddds")) gr->Grid3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,-1,opt);
976 else if(!strcmp(k,"ddddsn"))gr->Grid3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,mgl_int(a[5].v),opt);
977 else res = 1;
978 return res;
979 }
980 //-----------------------------------------------------------------------------
mgls_surf3(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)981 int static mgls_surf3(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
982 {
983 int res=0;
984 if(!strcmp(k,"d")) gr->Surf3(*(a[0].d),"",opt);
985 else if(!strcmp(k,"ds")) gr->Surf3(*(a[0].d),a[1].s.s,opt);
986 else if(!strcmp(k,"dn")) gr->Surf3(a[1].v,*(a[0].d),"",opt);
987 else if(!strcmp(k,"dns")) gr->Surf3(a[1].v,*(a[0].d),a[2].s.s,opt);
988 else if(!strcmp(k,"dddd")) gr->Surf3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), "",opt);
989 else if(!strcmp(k,"dddds")) gr->Surf3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), a[4].s.s,opt);
990 else if(!strcmp(k,"ddddn")) gr->Surf3(a[4].v,*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
991 else if(!strcmp(k,"ddddns"))gr->Surf3(a[4].v,*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[5].s.s,opt);
992 else res = 1;
993 return res;
994 }
995 //-----------------------------------------------------------------------------
mgls_surf3c(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)996 int static mgls_surf3c(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
997 {
998 int res=0;
999 if(!strcmp(k,"dd")) gr->Surf3C(*(a[0].d),*(a[1].d),"",opt);
1000 else if(!strcmp(k,"dds")) gr->Surf3C(*(a[0].d),*(a[1].d),a[2].s.s,opt);
1001 else if(!strcmp(k,"ddn")) gr->Surf3C(a[2].v,*(a[0].d),*(a[1].d),"",opt);
1002 else if(!strcmp(k,"ddns")) gr->Surf3C(a[2].v,*(a[0].d),*(a[1].d),a[3].s.s,opt);
1003 else if(!strcmp(k,"ddddd"))
1004 gr->Surf3C(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d), "",opt);
1005 else if(!strcmp(k,"ddddds"))
1006 gr->Surf3C(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d), a[5].s.s,opt);
1007 else if(!strcmp(k,"dddddn"))
1008 gr->Surf3C(a[5].v,*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),"",opt);
1009 else if(!strcmp(k,"dddddns"))
1010 gr->Surf3C(a[5].v,*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[6].s.s,opt);
1011 else res = 1;
1012 return res;
1013 }
1014 //-----------------------------------------------------------------------------
mgls_surf3a(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)1015 int static mgls_surf3a(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
1016 {
1017 int res=0;
1018 if(!strcmp(k,"dd")) gr->Surf3A(*(a[0].d),*(a[1].d),"",opt);
1019 else if(!strcmp(k,"dds")) gr->Surf3A(*(a[0].d),*(a[1].d),a[2].s.s,opt);
1020 else if(!strcmp(k,"ddn")) gr->Surf3A(a[2].v,*(a[0].d),*(a[1].d),"",opt);
1021 else if(!strcmp(k,"ddns")) gr->Surf3A(a[2].v,*(a[0].d),*(a[1].d),a[3].s.s,opt);
1022 else if(!strcmp(k,"ddddd"))
1023 gr->Surf3A(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d), "",opt);
1024 else if(!strcmp(k,"ddddds"))
1025 gr->Surf3A(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d), a[5].s.s,opt);
1026 else if(!strcmp(k,"dddddn"))
1027 gr->Surf3A(a[5].v,*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),"",opt);
1028 else if(!strcmp(k,"dddddns"))
1029 gr->Surf3A(a[5].v,*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[6].s.s,opt);
1030 else res = 1;
1031 return res;
1032 }
1033 //-----------------------------------------------------------------------------
mgls_surf3ca(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)1034 int static mgls_surf3ca(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
1035 {
1036 int res=0;
1037 if(!strcmp(k,"ddd")) gr->Surf3CA(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
1038 else if(!strcmp(k,"ddds")) gr->Surf3CA(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,opt);
1039 else if(!strcmp(k,"dddn")) gr->Surf3CA(a[4].v,*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
1040 else if(!strcmp(k,"dddns")) gr->Surf3CA(a[4].v,*(a[0].d),*(a[1].d),*(a[2].d),a[4].s.s,opt);
1041 else if(!strcmp(k,"dddddd"))
1042 gr->Surf3CA(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d), "",opt);
1043 else if(!strcmp(k,"dddddds"))
1044 gr->Surf3CA(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d), a[6].s.s,opt);
1045 else if(!strcmp(k,"ddddddn"))
1046 gr->Surf3CA(a[6].v,*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),"",opt);
1047 else if(!strcmp(k,"ddddddns"))
1048 gr->Surf3CA(a[6].v,*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[7].s.s,opt);
1049 else res = 1;
1050 return res;
1051 }
1052 //-----------------------------------------------------------------------------
1053 // Vect
1054 //-----------------------------------------------------------------------------
mgls_dew(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)1055 int static mgls_dew(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
1056 {
1057 int res=0;
1058 if(!strcmp(k,"dd")) gr->Dew(*(a[0].d),*(a[1].d),"",opt);
1059 else if(!strcmp(k,"dds")) gr->Dew(*(a[0].d),*(a[1].d),a[2].s.s,opt);
1060 else if(!strcmp(k,"dddd")) gr->Dew(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
1061 else if(!strcmp(k,"dddds")) gr->Dew(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,opt);
1062 else res = 1;
1063 return res;
1064 }
1065 //-----------------------------------------------------------------------------
mgls_flow(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)1066 int static mgls_flow(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
1067 {
1068 int res=0;
1069 if(!strcmp(k,"dd")) gr->Flow(*(a[0].d),*(a[1].d),"",opt);
1070 else if(!strcmp(k,"dds")) gr->Flow(*(a[0].d),*(a[1].d),a[2].s.s,opt);
1071 else if(!strcmp(k,"ddd")) gr->Flow(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
1072 else if(!strcmp(k,"ddds")) gr->Flow(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,opt);
1073 else if(!strcmp(k,"dddd")) gr->Flow(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
1074 else if(!strcmp(k,"dddds")) gr->Flow(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,opt);
1075 else if(!strcmp(k,"dddddd"))
1076 gr->Flow(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),"",opt);
1077 else if(!strcmp(k,"dddddds"))
1078 gr->Flow(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.s,opt);
1079 else if(!strcmp(k,"nndd"))
1080 gr->FlowP(mglPoint(a[0].v,a[1].v,NAN), *(a[2].d),*(a[3].d),"",opt);
1081 else if(!strcmp(k,"nndds"))
1082 gr->FlowP(mglPoint(a[0].v,a[1].v,NAN), *(a[2].d),*(a[3].d),a[4].s.s,opt);
1083 else if(!strcmp(k,"nndddd"))
1084 gr->FlowP(mglPoint(a[0].v,a[1].v,NAN), *(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),"",opt);
1085 else if(!strcmp(k,"nndddds"))
1086 gr->FlowP(mglPoint(a[0].v,a[1].v,NAN), *(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.s,opt);
1087 else if(!strcmp(k,"nnnddd"))
1088 gr->FlowP(mglPoint(a[0].v,a[1].v,a[2].v), *(a[3].d),*(a[4].d),*(a[5].d),"",opt);
1089 else if(!strcmp(k,"nnnddds"))
1090 gr->FlowP(mglPoint(a[0].v,a[1].v,a[2].v), *(a[3].d),*(a[4].d),*(a[5].d),a[6].s.s,opt);
1091 else if(!strcmp(k,"nnndddddd"))
1092 gr->FlowP(mglPoint(a[0].v,a[1].v,a[2].v), *(a[3].d),*(a[4].d),*(a[5].d),*(a[6].d),*(a[7].d),*(a[8].d),"",opt);
1093 else if(!strcmp(k,"nnndddddds"))
1094 gr->FlowP(mglPoint(a[0].v,a[1].v,a[2].v), *(a[3].d),*(a[4].d),*(a[5].d),*(a[6].d),*(a[7].d),*(a[8].d),a[9].s.s,opt);
1095 else res = 1;
1096 return res;
1097 }
1098 //-----------------------------------------------------------------------------
mgls_flow3(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)1099 int static mgls_flow3(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
1100 {
1101 int res=0;
1102 if(!strcmp(k,"ddd")) gr->Flow3(*(a[0].d),*(a[1].d),*(a[2].d),"",-1,opt);
1103 else if(!strcmp(k,"ddds")) gr->Flow3(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,-1,opt);
1104 else if(!strcmp(k,"dddsn")) gr->Flow3(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,a[4].v,opt);
1105 else if(!strcmp(k,"dddddd"))
1106 gr->Flow3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),"",-1,opt);
1107 else if(!strcmp(k,"dddddds"))
1108 gr->Flow3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.s,-1,opt);
1109 else if(!strcmp(k,"ddddddsn"))
1110 gr->Flow3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.s,a[7].v,opt);
1111 else res = 1;
1112 return res;
1113 }
1114 //-----------------------------------------------------------------------------
mgls_grad(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)1115 int static mgls_grad(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
1116 {
1117 int res=0;
1118 if(!strcmp(k,"d")) gr->Grad(*(a[0].d), "",opt);
1119 else if(!strcmp(k,"ds")) gr->Grad(*(a[0].d), a[1].s.s,opt);
1120 else if(!strcmp(k,"ddd")) gr->Grad(*(a[0].d),*(a[1].d),*(a[2].d), "",opt);
1121 else if(!strcmp(k,"ddds")) gr->Grad(*(a[0].d),*(a[1].d),*(a[2].d), a[3].s.s,opt);
1122 else if(!strcmp(k,"dddd")) gr->Grad(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), "",opt);
1123 else if(!strcmp(k,"dddds")) gr->Grad(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), a[4].s.s,opt);
1124 else res = 1;
1125 return res;
1126 }
1127 //-----------------------------------------------------------------------------
mgls_pipe(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)1128 int static mgls_pipe(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
1129 {
1130 int res=0;
1131 if(!strcmp(k,"dd")) gr->Pipe(*(a[0].d),*(a[1].d),"",0.05,opt);
1132 else if(!strcmp(k,"dds")) gr->Pipe(*(a[0].d),*(a[1].d),a[2].s.s,0.05,opt);
1133 else if(!strcmp(k,"ddsn")) gr->Pipe(*(a[0].d),*(a[1].d),a[2].s.s,a[3].v,opt);
1134 else if(!strcmp(k,"dddd"))
1135 gr->Pipe(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",0.05,opt);
1136 else if(!strcmp(k,"dddds"))
1137 gr->Pipe(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,0.05,opt);
1138 else if(!strcmp(k,"ddddsn"))
1139 gr->Pipe(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,a[5].v,opt);
1140 else if(!strcmp(k,"ddd"))
1141 gr->Pipe(*(a[0].d),*(a[1].d),*(a[2].d),"",0.05,opt);
1142 else if(!strcmp(k,"ddds"))
1143 gr->Pipe(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,0.05,opt);
1144 else if(!strcmp(k,"dddsn"))
1145 gr->Pipe(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,a[4].v,opt);
1146 else if(!strcmp(k,"dddddd"))
1147 gr->Pipe(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),"",0.05,opt);
1148 else if(!strcmp(k,"dddddds"))
1149 gr->Pipe(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.s,0.05,opt);
1150 else if(!strcmp(k,"ddddddsn"))
1151 gr->Pipe(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.s,a[7].v,opt);
1152 else res = 1;
1153 return res;
1154 }
1155 //-----------------------------------------------------------------------------
mgls_traj(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)1156 int static mgls_traj(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
1157 {
1158 int res=0;
1159 if(!strcmp(k,"dddd"))
1160 gr->Traj(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
1161 else if(!strcmp(k,"dddds"))
1162 gr->Traj(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,opt);
1163 else if(!strcmp(k,"dddddd"))
1164 gr->Traj(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),"",opt);
1165 else if(!strcmp(k,"dddddds"))
1166 gr->Traj(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.s,opt);
1167 else res = 1;
1168 return res;
1169 }
1170 //-----------------------------------------------------------------------------
mgls_vect(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)1171 int static mgls_vect(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
1172 {
1173 int res=0;
1174 if(!strcmp(k,"dd")) gr->Vect(*(a[0].d),*(a[1].d),"",opt);
1175 else if(!strcmp(k,"dds")) gr->Vect(*(a[0].d),*(a[1].d),a[2].s.s,opt);
1176 else if(!strcmp(k,"ddd")) gr->Vect(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
1177 else if(!strcmp(k,"ddds")) gr->Vect(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,opt);
1178 else if(!strcmp(k,"dddd")) gr->Vect(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
1179 else if(!strcmp(k,"dddds")) gr->Vect(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.s,opt);
1180 else if(!strcmp(k,"dddddd")) gr->Vect(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),"",opt);
1181 else if(!strcmp(k,"dddddds")) gr->Vect(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.s,opt);
1182 else res = 1;
1183 return res;
1184 }
1185 //-----------------------------------------------------------------------------
mgls_vect3(mglGraph * gr,long,mglArg * a,const char * k,const char * opt)1186 int static mgls_vect3(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
1187 {
1188 int res=0;
1189 if(!strcmp(k,"ddd"))
1190 gr->Vect3(*(a[0].d),*(a[1].d),*(a[2].d),"",-1,opt);
1191 else if(!strcmp(k,"ddds"))
1192 gr->Vect3(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,-1,opt);
1193 else if(!strcmp(k,"dddsn"))
1194 gr->Vect3(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.s,a[4].v,opt);
1195 else if(!strcmp(k,"dddddd"))
1196 gr->Vect3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),"",-1,opt);
1197 else if(!strcmp(k,"dddddds"))
1198 gr->Vect3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.s,-1,opt);
1199 else if(!strcmp(k,"ddddddsn"))
1200 gr->Vect3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.s,a[7].v,opt);
1201 else res = 1;
1202 return res;
1203 }
1204 //-----------------------------------------------------------------------------
1205 mglCommand mgls_grf_cmd[] = {
1206 {"area",_("Draw area plot for 1D data"),"area Ydat ['fmt']|Xdat Ydat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_area ,7},
1207 {"axial",_("Draw surfaces of contour lines rotation"),"axial Zdat ['fmt' num]|Xdat Ydat Zdat ['fmt' num]", mgls_axial ,8},
1208 {"barh",_("Draw horizontal bars for 1D data"), "barh Ydat ['fmt' above]|Xdat Ydat ['fmt' above]", mgls_barh ,7},
1209 {"bars",_("Draw bars for 1D data"),"bars Ydat ['fmt' above]|Xdat Ydat ['fmt' above]|Xdat Ydat Zdat ['fmt' above]", mgls_bars ,7},
1210 {"beam",_("Draw quasi-optical beam"),"beam Ray G1 G2 Adat r ['sch' flag num]|val Ray G1 G2 Adat r ['sch' flag num]", mgls_beam ,9},
1211 {"belt",_("Draw belts"),"belt Zdat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_belt ,8},
1212 {"beltc",_("Draw belts colored by other data"),"beltc Zdat Cdat ['fmt']|Xdat Ydat Zdat Cdat ['fmt']", mgls_beltc ,8},
1213 {"bifurcation",_("Draw Bifurcation diagram"),"bifurcation dx Func ['fmt']|dx 'func' ['fmt']", mgls_bifurcation,13},
1214 {"boxplot",_("Draw boxplot for 2D data"),"boxplot Ydat ['fmt']|Xdat Ydat ['fmt']", mgls_boxplot ,7},
1215 {"boxs",_("Draw boxes"),"boxs Zdat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_boxs ,8},
1216 {"candle",_("Draw candlestick chart"),"candle candle Vdat1 ['fmt']|Vdat1 Vdat2 ['fmt']|Vdat1 Ydat1 Ydat2 ['fmt']||Vdat1 Vdat2 Ydat1 Ydat2 ['fmt']|Xdat Vdat1 Vdat2 Ydat1 Ydat2 ['fmt']", mgls_candle ,7},
1217 {"chart",_("Draw chart"),"chart Dat ['fmt']", mgls_chart ,7},
1218 {"cloud",_("Draw cloud"),"cloud Adat ['fmt']|Xdat Ydat Zdat Adat ['fmt']", mgls_cloud ,9},
1219 {"cones",_("Draw cones for 1D data"),"cones Ydat ['fmt' above]|Xdat Ydat ['fmt' above]|Xdat Ydat Zdat ['fmt' above]", mgls_cones ,7},
1220 {"cont",_("Draw contour lines"),"cont Zdat ['fmt']|Vdat Zdat ['fmt']|Xdat Ydat Zdat ['fmt']|Vdat Xdat Ydat Zdat ['fmt']|val Adat Xdat Ydat Zdat ['fmt']", mgls_cont ,8},
1221 {"cont3",_("Draw contour lines for 3D data"),"cont3 Adat 'dir' [val 'fmt' num]|Vdat Adat 'dir' [val 'fmt']|Xdat Ydat Zdat Adat 'dir' [val 'fmt' num]|Vdat Xdat Ydat Zdar Adat 'dir' [val 'fmt']", mgls_cont3 ,9},
1222 {"contd",_("Draw solid contours with manual colors"),"contd Zdat ['fmt']|Vdat Zdat ['fmt']|Xdat Ydat Zdat ['fmt']|Vdat Xdat Ydat Zdat ['fmt']", mgls_contd ,8},
1223 {"contf",_("Draw solid contours"),"contf Zdat ['fmt']|Vdat Zdat ['fmt']|Xdat Ydat Zdat ['fmt']|Vdat Xdat Ydat Zdat ['fmt']|v1 v2 Adat Xdat Ydat Zdat ['fmt']", mgls_contf ,8},
1224 {"contf3",_("Draw solid contour lines for 3D data"),"contf3 Adat 'dir' [val 'fmt' num]|Vdat Adat 'dir' [val 'fmt']|Xdat Ydat Zdat Adat 'dir' [val 'fmt' num]|Vdat Xdat Ydat Zdar Adat 'dir' [val 'fmt']", mgls_contf3 ,9},
1225 {"contfx",_("Draw solid contour lines at x-slice (or x-plane)"),"contfx Dat ['fmt' pos num]", mgls_contfx ,0},
1226 {"contfy",_("Draw solid contour lines at y-slice (or y-plane)"),"contfy Dat ['fmt' pos num]", mgls_contfy ,0},
1227 {"contfz",_("Draw solid contour lines at z-slice (or z-plane)"),"contfz Dat ['fmt' pos num]", mgls_contfz ,0},
1228 {"contp",_("Draw contour lines on parametric surface"),"contp Xdat Ydat Zdat Adat ['fmt' num zpos]|Vdat Xdat Ydat Zdat Adat ['fmt' zpos]", mgls_contp ,8},
1229 {"contv",_("Draw contour tubes"),"contv Zdat ['fmt' num zpos]|Vdat Zdat ['fmt' zpos]|Xdat Ydat Zdat ['fmt' num zpos]|Vdat Xdat Ydat Zdat ['fmt' zpos]", mgls_contv ,0},
1230 {"contx",_("Draw contour lines at x-slice (or x-plane)"),"contx Dat ['fmt' pos num]", mgls_contx ,0},
1231 {"conty",_("Draw contour lines at y-slice (or y-plane)"),"conty Dat ['fmt' pos num]", mgls_conty ,0},
1232 {"contz",_("Draw contour lines at z-slice (or z-plane)"),"contz Dat ['fmt' pos num]", mgls_contz ,0},
1233 {"crust",_("Draw reconstructed surface for arbitrary data points"),"crust Xdat Ydat Zdat ['fmt']", mgls_crust ,0},
1234 {"dcont",_("Draw curves of cross-section of isosurfaces a,b for 3D data"),"dcont Adat Bdat ['fmt']|Vdat Adat Bdat ['fmt']|Xdat Ydat Zdat Adat Bdat ['fmt']|Vdat Xdat Ydat Zdar Adat Bdat ['fmt']", mgls_dcont ,9},
1235 {"dens",_("Draw density plot"),"dens Zdat ['fmt' zpos]|Xdat Ydat Zdat ['fmt' zpos]", mgls_dens ,8},
1236 {"dens3",_("Draw density plot at slices of 3D data"),"dens3 Adat 'dir' [pos 'fmt']|Xdat Ydat Zdat Adat 'dir' [pos 'fmt']", mgls_dens3 ,9},
1237 {"densx",_("Draw density plot at x-slice (or x-plane)"),"densx Dat ['fmt' pos]", mgls_densx ,0},
1238 {"densy",_("Draw density plot at y-slice (or y-plane)"),"densy Dat ['fmt' pos]", mgls_densy ,0},
1239 {"densz",_("Draw density plot at z-slice (or z-plane)"),"densz Dat ['fmt' pos]", mgls_densz ,0},
1240 {"dew",_("Draw dew plot"),"dew Udat Vdat ['fmt']|Xdat Ydat Udat Vdat ['fmt']", mgls_dew ,11},
1241 {"dots",_("Draw dots for arbitrary data points"),"dots Xdat Ydat Zdat ['fmt']|Xdat Ydat Zdat Adat ['fmt']|Xdat Ydat Zdat Cdat Adat ['fmt']", mgls_dots ,9},
1242 {"error",_("Draw error boxes"),"error Ydat Yerr ['fmt']|Xdat Ydat Yerr ['fmt']|Xdat Ydat Xerr Yerr ['fmt']", mgls_error ,7},
1243 {"fall",_("Draw waterfalls"),"fall Zdat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_fall ,8},
1244 {"flow",_("Draw flow threads for vector field"),"flow Udat Vdat ['fmt']|Xdat Ydat Udat Vdat ['fmt']|Udat Vdat Wdat ['fmt']|Xdat Ydat Zdat Udat Vdat Wdat ['fmt']|\
1245 x0 y0 Udat Vdat ['fmt']|x0 y0 Xdat Ydat Udat Vdat ['fmt']|x0 y0 z0 Udat Vdat Wdat ['fmt']|x0 y0 z0 Xdat Ydat Zdat Udat Vdat Wdat ['fmt']", mgls_flow ,11},
1246 {"flow3",_("Draw flow threads from plain for vector field"),"flow3 Udat Udat Vdat Wdat ['fmt' num]|Xdat Ydat Zdat Udat Vdat Wdat ['fmt' num]", mgls_flow3 ,11},
1247 {"grad",_("Draw gradient lines for scalar field"),"grad Phi ['fmt' num]|Xdat Ydat Phi ['fmt' num]|Xdat Ydat Zdat Phi ['fmt' num]", mgls_grad ,8},
1248 {"grid2",_("Draw grid for data array(s)"),"grid2 Zdat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_grid2 ,8},
1249 {"grid3",_("Draw grid at slices of 3D data"),"grid3 Adat 'dir' [pos 'fmt']|Xdat Ydat Zdat Adat 'dir' [pos 'fmt']", mgls_grid3 ,9},
1250 {"iris",_("Draw Iris plots"),"iris Dats 'ids' ['fmt']|Dats Ranges 'ids' ['fmt']", mgls_iris,13},
1251 {"label",_("Draw label at arbitrary position"),"label Ydat 'txt' ['fmt'='']|Xdat Ydat 'txt' ['fmt'='']|Xdat Ydat Zdat 'txt' ['fmt'='']", mgls_label ,7},
1252 {"lamerey",_("Draw Lamerey diagram"),"lamerey x0 Func ['fmt']|x0 'func' ['fmt']", mgls_lamerey ,13},
1253 {"lines",_("Draw lines with arrows for 1D data"),"lines Y1dat Y2dat ['fmt']|X1dat Y1dat X2dat Y2dat ['fmt']|X1dat Y1dat Z1dat X2dat Y2dat Z2dat ['fmt']", mgls_lines ,7},
1254 {"map",_("Draw mapping plot"),"map Udat Vdat ['fmt']|Xdat Ydat Udat Vdat ['fmt']", mgls_map ,10},
1255 {"mark",_("Draw mark plot for 1D data"),"mark Ydat Rdat ['fmt']|Xdat Ydat Rdat ['fmt']|Xdat Ydat Zdat Rdat ['fmt']", mgls_mark ,7},
1256 {"mesh",_("Draw mesh surface"),"mesh Zdat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_mesh ,8},
1257 {"ohlc",_("Draw Open-High-Low-Close (OHLC) diagram"),"ohlc Odat Hdat Ldat Cdat ['fmt']|Xdat Odat Hdat Ldat Cdat ['fmt']", mgls_ohlc ,7},
1258 {"pipe",_("Draw flow pipes for vector field"),"pipe Udat Vdat ['fmt' rad num]|Xdat Ydat Udat Vdat ['fmt' rad num]|Udat Vdat Wdat ['fmt' rad num]|Xdat Ydat Zdat Udat Vdat Wdat ['fmt' rad num]", mgls_pipe ,11},
1259 {"plot",_("Draw usual plot for 1D data"),"plot Ydat ['fmt']|Xdat Ydat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_plot ,7},
1260 {"pmap",_("Draw Poincare map"),"pmap Ydat Rdat ['fmt']|Xdat Ydat Rdat ['fmt']|Xdat Ydat Zdat Rdat ['fmt']", mgls_pmap ,7},
1261 {"quadplot",_("Draw surface of quadrangles"),"quadplot Idat Xdat Ydat ['fmt']|Idat Xdat Ydat Zdat ['fmt']|Idat Xdat Ydat Zdat Cdat ['fmt'] ", mgls_quadplot ,0},
1262 {"radar",_("Draw radar chart"),"radar Rdat ['fmt']", mgls_radar ,7},
1263 {"region",_("Draw filled region (ribbon) between 2 curves"),"region Ydat1 Ydat2 ['fmt']|Xdat Ydat1 Ydat2 ['fmt']||Xdat1 Ydat1 Xdat2 Ydat2 ['fmt']|Xdat1 Ydat1 Zdat1 Xdat2 Ydat2 Zdat2 ['fmt']", mgls_region ,7},
1264 {"stem",_("Draw stem plot for 1D data"),"stem Ydat ['fmt']|Xdat Ydat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_stem ,7},
1265 {"step",_("Draw step plot for 1D data"),"step Ydat ['fmt']|Xdat Ydat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_step ,7},
1266 {"stfa",_("Draw STFA diagram"),"stfa Udat Vdat dn ['fmt']|Xdat Ydat Udat Vdat dn ['fmt']", mgls_stfa ,10},
1267 {"surf",_("Draw solid surface"),"surf Zdat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_surf ,8},
1268 {"surf3",_("Draw isosurface for 3D data"),"surf3 Adat ['fmt' num]|Xdat Ydat Zdat Adat ['fmt' num]|Adat val ['fmt']|Xdat Ydat Zdat Adat val ['fmt']", mgls_surf3 ,9},
1269 {"surf3a",_("Draw isosurface for 3D data transpared by other data"),"surf3a Adat Cdat ['fmt' num]|Xdat Ydat Zdat Adat Cdat ['fmt' num]|Adat Cdat val ['fmt']|Xdat Ydat Zdat Adat Cdat val ['fmt']", mgls_surf3a ,10},
1270 {"surf3c",_("Draw isosurface for 3D data colored by other data"),"surf3c Adat Cdat ['fmt' num]|Xdat Ydat Zdat Adat Cdat ['fmt' num]|Adat Cdat val ['fmt']|Xdat Ydat Zdat Adat Cdat val ['fmt']", mgls_surf3c ,10},
1271 {"surf3ca",_("Draw isosurface for 3D data colored and transpared by other data"),"surf3c Adat Cdat Bdat ['fmt' num]|Xdat Ydat Zdat Adat Cdat Bdat ['fmt' num]|Adat Cdat Bdat val ['fmt']|Xdat Ydat Zdat Adat Cdat Bdat val ['fmt']", mgls_surf3ca ,10},
1272 {"surfa",_("Draw solid surface transpared by other data"),"surfa Zdat Cdat ['fmt']|Xdat Ydat Zdat Cdat ['fmt']", mgls_surfa ,10},
1273 {"surfc",_("Draw solid surface colored by other data"),"surfc Zdat Cdat ['fmt']|Xdat Ydat Zdat Cdat ['fmt']", mgls_surfc ,10},
1274 {"surfca",_("Draw solid surface colored and transpared by other data"),"surfca Zdat Cdat Adat ['fmt']|Xdat Ydat Zdat Cdat Adat ['fmt']", mgls_surfca ,10},
1275 {"table",_("Draw table with data values"),"table Dat ['txt' 'fmt']|x y Dat ['txt' 'fmt']", mgls_table ,7},
1276 {"tape",_("Draw binormales for 1D data"),"tape Ydat ['fmt']|Xdat Ydat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_tape ,7},
1277 {"tens",_("Draw tension plot for 1D data"),"tens Ydat Cdat ['fmt']|Xdat Ydat Cdat ['fmt']|Xdat Ydat Zdat Cdat ['fmt']", mgls_tens ,7},
1278 {"textmark",_("Draw TeX mark at point position"),"textmark Ydat Rdat 'text' ['fmt']|Xdat Ydat Rdat 'text' ['fmt']|Xdat Ydat Zdat Rdat 'text' ['fmt']", mgls_textmark ,7},
1279 {"tile",_("Draw horizontal tiles"),"tile Zdat ['fmt']|Xdat Ydat Zdat ['fmt']|Xdat Ydat Zdat Cdat ['fmt']", mgls_tile ,8},
1280 {"tiles",_("Draw horizontal tiles with variable size"),"tiles Zdat Rdat ['fmt']|Xdat Ydat Zdat Rdat ['fmt']|Xdat Ydat Zdat Rdat Cdat ['fmt']", mgls_tiles ,10},
1281 {"torus",_("Draw surface of curve rotation"),"torus Rdat ['fmt']|Zdat Rdat ['fmt']", mgls_torus ,7},
1282 {"traj",_("Draw vectors along a curve"),"traj Xdat Ydat Udat Vdat ['fmt' len]|Xdat Ydat Zdat Udat Vdat Wdat ['fmt' len]", mgls_traj ,11},
1283 {"tricont",_("Draw contour lines for surface of triangles"),"tricont Idat Xdat Ydat Cdat ['fmt']|Idat Xdat Ydat Zdat Cdat ['fmt']|Vdat Idat Xdat Ydat Cdat ['fmt']|Vdat Idat Xdat Ydat Zdat Cdat ['fmt']", mgls_tricont ,0},
1284 {"tricontv",_("Draw contour tubes for surface of triangles"),"tricontv Idat Xdat Ydat Cdat ['fmt']|Idat Xdat Ydat Zdat Cdat ['fmt']|Vdat Idat Xdat Ydat Cdat ['fmt']|Vdat Idat Xdat Ydat Zdat Cdat ['fmt']", mgls_tricontv ,0},
1285 {"triplot",_("Draw surface of triangles"),"triplot Idat Xdat Ydat ['fmt']|Idat Xdat Ydat Zdat ['fmt']|Idat Xdat Ydat Zdat Cdat ['fmt'] ", mgls_triplot ,0},
1286 {"tube",_("Draw curve by tube"),"tube Ydat Rdat ['fmt']|Ydat rval ['fmt']|Xdat Ydat Rdat ['fmt']|Xdat Ydat rval ['fmt']|Xdat Ydat Zdat Rdat ['fmt']|Xdat Ydat Zdat rval ['fmt']", mgls_tube ,7},
1287 {"vect",_("Draw vector field"),"vect Udat Vdat ['fmt']|Xdat Ydat Udat Vdat ['fmt']|Udat Vdat Wdat ['fmt']|Xdat Ydat Zdat Udat Vdat Wdat ['fmt']", mgls_vect ,11},
1288 {"vect3",_("Draw vector field at slices of 3D data"),"vect Udat Vdat Wdat ['fmt' sval]|Xdat Ydat Zdat Udat Vdat Wdat ['fmt' sval]", mgls_vect3 ,11},
1289 {"","","",NULL,0}};
1290 //-----------------------------------------------------------------------------
1291