Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/matc/src/gra_com.c
3196 views
1
/*****************************************************************************
2
*
3
* Elmer, A Finite Element Software for Multiphysical Problems
4
*
5
* Copyright 1st April 1995 - , CSC - IT Center for Science Ltd., Finland
6
*
7
* This library is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2.1 of the License, or (at your option) any later version.
11
*
12
* This library is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with this library (in file ../LGPL-2.1); if not, write
19
* to the Free Software Foundation, Inc., 51 Franklin Street,
20
* Fifth Floor, Boston, MA 02110-1301 USA
21
*
22
*****************************************************************************/
23
24
/*******************************************************************************
25
*
26
* MATC graphics user routines.
27
*
28
*******************************************************************************
29
*
30
* Author: Juha Ruokolainen
31
*
32
* Address: CSC - IT Center for Science Ltd.
33
* Keilaranta 14, P.O. BOX 405
34
* 02101 Espoo, Finland
35
* Tel. +358 0 457 2723
36
* Telefax: +358 0 457 2302
37
* EMail: [email protected]
38
*
39
* Date: 30 May 1996
40
*
41
* Modified by:
42
*
43
* Date of modification:
44
*
45
******************************************************************************/
46
47
/*
48
* $Id: gra_com.c,v 1.1.1.1 2005/04/14 13:29:14 vierinen Exp $
49
*
50
* $Log: gra_com.c,v $
51
* Revision 1.1.1.1 2005/04/14 13:29:14 vierinen
52
* initial matc automake package
53
*
54
* Revision 1.2 1998/08/01 12:34:42 jpr
55
*
56
* Added Id, started Log.
57
*
58
*
59
*/
60
61
#include "elmer/matc.h"
62
63
VARIABLE *gra_gopen(VARIABLE *var)
64
{
65
char *name;
66
67
if (NEXT(var) != NULL)
68
{
69
name = var_to_string(NEXT(var));
70
gra_init_matc((int)*MATR(var), name);
71
FREEMEM(name);
72
}
73
else
74
{
75
gra_init_matc((int)*MATR(var), NULL);
76
}
77
return NULL;
78
}
79
80
VARIABLE *gra_gclose(void)
81
{
82
GRA_CLOSE();
83
return NULL;
84
}
85
86
VARIABLE *gra_gclear(void)
87
{
88
GRA_CLEAR();
89
return NULL;
90
}
91
92
VARIABLE *gra_gflush(void)
93
{
94
GRA_FLUSH();
95
return NULL;
96
}
97
98
VARIABLE *gra_gdefcolor(VARIABLE *var)
99
{
100
double *m = MATR(NEXT(var));
101
double r, g, b;
102
int i;
103
104
i = *MATR(var);
105
r = *m++;
106
g = *m++;
107
b = *m++;
108
GRA_DEFCOLOR(i, r, g, b);
109
110
return NULL;
111
}
112
113
VARIABLE *gra_gcolor(VARIABLE *var)
114
{
115
GRA_COLOR((int)*MATR(var));
116
117
return NULL;
118
}
119
120
VARIABLE *gra_gpolyline(VARIABLE *var)
121
{
122
GRA_POLYLINE((int)*MATR(var), MATR(NEXT(var)));
123
124
return NULL;
125
}
126
127
VARIABLE *gra_gdraw(VARIABLE *var)
128
{
129
GRA_DRAW(MATR(var));
130
131
return NULL;
132
}
133
134
VARIABLE *gra_gmove(VARIABLE *var)
135
{
136
GRA_MOVE(MATR(var));
137
138
return NULL;
139
}
140
141
VARIABLE *gra_gpolymarker(VARIABLE *var)
142
{
143
GRA_POLYMARKER((int)*MATR(var),(int)*MATR(NEXT(var)),MATR(NEXT(NEXT(var))));
144
145
return NULL;
146
}
147
148
VARIABLE *gra_gmarker(VARIABLE *var)
149
{
150
GRA_MARKER((int)*MATR(var),MATR(NEXT(var)));
151
152
return NULL;
153
}
154
155
VARIABLE *gra_gareafill(VARIABLE *var)
156
{
157
GRA_AREAFILL((int)*MATR(var),MATR(NEXT(var)));
158
159
return NULL;
160
}
161
162
VARIABLE *gra_gtext(VARIABLE *var)
163
{
164
double *m = MATR(var);
165
double h, r;
166
char *str;
167
168
h = *m++;
169
r = *m++;
170
str = var_to_string(NEXT(var));
171
GRA_TEXT(h, r, str);
172
FREEMEM(str);
173
174
return NULL;
175
}
176
177
VARIABLE *gra_gimage(VARIABLE *var)
178
{
179
int w, h, d;
180
double *m = MATR(var);
181
182
w = *m++;
183
h = *m++;
184
d = *m++;
185
GRA_IMAGE(w, h, d, MATR(NEXT(var)));
186
187
return NULL;
188
}
189
190
VARIABLE *gra_gwindow(VARIABLE *var)
191
{
192
double x1, x2, y1, y2, z1, z2;
193
double *m = MATR(var);
194
195
x1 = *m++;
196
x2 = *m++;
197
y1 = *m++;
198
y2 = *m++;
199
z1 = *m++;
200
z2 = *m++;
201
GRA_WINDOW(x1,x2,y1,y2,z1,z2);
202
203
return NULL;
204
}
205
206
VARIABLE *gra_gviewport(VARIABLE *var)
207
{
208
double x1, x2, y1, y2;
209
double *m = MATR(var);
210
211
x1 = *m++;
212
x2 = *m++;
213
y1 = *m++;
214
y2 = *m++;
215
GRA_VIEWPORT(x1,x2,y1,y2);
216
217
return NULL;
218
}
219
220
VARIABLE *gra_gtranslate(VARIABLE *var)
221
{
222
double x, y, z;
223
double *m = MATR(var);
224
225
x = *m++;
226
y = *m++;
227
z = *m++;
228
GRA_TRANSLATE(x,y,z);
229
230
return NULL;
231
}
232
233
VARIABLE *gra_grotate(VARIABLE *var)
234
{
235
double x, y, z;
236
double *m = MATR(var);
237
238
x = *m++;
239
y = *m++;
240
z = *m++;
241
GRA_ROTATE(x,y,z);
242
243
return NULL;
244
}
245
246
VARIABLE *gra_gscale(VARIABLE *var)
247
{
248
double x, y, z;
249
double *m = MATR(var);
250
251
x = *m++;
252
y = *m++;
253
z = *m++;
254
GRA_SCALE(x,y,z);
255
256
return NULL;
257
}
258
259
VARIABLE *gra_gviewpoint(VARIABLE *var)
260
{
261
double xf, yf, zf, xt = 0, yt = 0, zt = 0;
262
double *m = MATR(var);
263
264
xf = *m++;
265
yf = *m++;
266
zf = *m++;
267
if (NEXT(var) != NULL)
268
{
269
m = MATR(NEXT(var));
270
xt = *m++;
271
yt = *m++;
272
zt = *m++;
273
}
274
275
GRA_VIEWPOINT(xf,yf,zf,xt,yt,zt);
276
277
return NULL;
278
}
279
280
VARIABLE *gra_ggetmatrix(VARIABLE *var)
281
{
282
VARIABLE *res;
283
284
res = var_temp_new(TYPE_DOUBLE, 4, 4);
285
GRA_GETMATRIX(MATR(res));
286
287
return res;
288
}
289
290
VARIABLE *gra_gsetmatrix(VARIABLE *var)
291
{
292
GRA_SETMATRIX(MATR(var));
293
294
return NULL;
295
}
296
297
VARIABLE *gra_gperspective(VARIABLE *var)
298
{
299
GRA_PERSPECTIVE(*MATR(var));
300
301
return NULL;
302
}
303
304
VARIABLE *gra_gdbuffer(VARIABLE *var)
305
{
306
GRA_DBUFFER(MATR(var));
307
308
return NULL;
309
}
310
311
VARIABLE *gra_gsbuffer(VARIABLE *var)
312
{
313
GRA_SBUFFER(MATR(var));
314
315
return NULL;
316
}
317
318
VARIABLE *gra_gswapbuf(VARIABLE *var)
319
{
320
GRA_SWAPBUF(MATR(var));
321
322
return NULL;
323
}
324
325
void gra_com_init(void)
326
{
327
com_init( "gopen", FALSE, FALSE, gra_gopen, 1, 2, "Sorry, no help available!");
328
com_init( "gclose", FALSE, FALSE, gra_gclose, 0, 0, "Sorry, no help available!");
329
com_init( "gclear", FALSE, FALSE, gra_gclear, 0, 0, "Sorry, no help available!");
330
com_init( "gflush", FALSE, FALSE, gra_gflush, 0, 0, "Sorry, no help available!");
331
com_init( "gdefcolor", FALSE, FALSE, gra_gdefcolor, 2, 2, "Sorry, no help available!");
332
com_init( "gcolor", FALSE, FALSE, gra_gcolor, 1, 1, "Sorry, no help available!");
333
com_init( "gpolyline", FALSE, FALSE, gra_gpolyline, 2, 2, "Sorry, no help available!");
334
com_init( "gdraw", FALSE, FALSE, gra_gdraw, 1, 1, "Sorry, no help available!");
335
com_init( "gmove", FALSE, FALSE, gra_gmove, 1, 1, "Sorry, no help available!");
336
com_init( "gpolymarker", FALSE, FALSE, gra_gpolymarker, 3, 3, "Sorry, no help available!");
337
com_init( "gmarker", FALSE, FALSE, gra_gmarker, 2, 2, "Sorry, no help available!");
338
com_init( "gareafill", FALSE, FALSE, gra_gareafill, 2, 2, "Sorry, no help available!");
339
com_init( "gimage", FALSE, FALSE, gra_gimage, 2, 2, "Sorry, no help available!");
340
com_init( "gtext", FALSE, FALSE, gra_gtext, 2, 2, "Sorry, no help available!");
341
com_init( "gwindow", FALSE, FALSE, gra_gwindow, 1, 1, "Sorry, no help available!");
342
com_init( "gviewport", FALSE, FALSE, gra_gviewport, 1, 1, "Sorry, no help available!");
343
com_init( "gtranslate", FALSE, FALSE, gra_gtranslate, 1, 1, "Sorry, no help available!");
344
com_init( "grotate", FALSE, FALSE, gra_grotate, 1, 1, "Sorry, no help available!");
345
com_init( "gscale", FALSE, FALSE, gra_gscale, 1, 1, "Sorry, no help available!");
346
com_init( "gviewpoint", FALSE, FALSE, gra_gviewpoint, 1, 2, "Sorry, no help available!");
347
com_init( "gdbuffer", FALSE, FALSE, gra_gdbuffer, 0, 0, "Sorry, no help available!");
348
com_init( "gsbuffer", FALSE, FALSE, gra_gsbuffer, 0, 0, "Sorry, no help available!");
349
com_init( "gswapbuf", FALSE, FALSE, gra_gswapbuf, 0, 0, "Sorry, no help available!");
350
com_init( "ggetmatrix", FALSE, FALSE, gra_ggetmatrix, 0, 0, "Sorry, no help available!");
351
com_init( "gsetmatrix", FALSE, FALSE, gra_gsetmatrix, 1, 1, "Sorry, no help available!");
352
com_init( "gperspective", FALSE, FALSE, gra_gperspective, 1, 1, "Sorry, no help available!");
353
com_init( "gc3d", FALSE, FALSE, c3d_gc3d, 1, 1, "Sorry, no help available!");
354
com_init( "gc3dlevels", FALSE, FALSE, c3d_gc3dlevels, 1, 1, "Sorry, no help available!");
355
}
356
357