/******************************************************************************
*
* ELMER, A Computational Fluid Dynamics Program.
*
* Copyright 1st April 1995 - , Center for Scientific Computing,
* Finland.
*
* All rights reserved. No part of this program may be used,
* reproduced or transmitted in any form or by any means
* without the written permission of CSC.
*
******************************************************************************/
/*******************************************************************************
*
* MATC graphics user routines.
*
*******************************************************************************
*
* Author: Juha Ruokolainen
*
* Address: Center for Scientific Computing
* Tietotie 6, P.O. BOX 405
* 02101 Espoo, Finland
* Tel. +358 0 457 2723
* Telefax: +358 0 457 2302
* EMail: Juha.Ruokolainen@csc.fi
*
* Date: 30 May 1996
*
* Modified by:
*
* Date of modification:
*
******************************************************************************/
/*
* $Id: gra_com.c,v 1.1.1.1 2005/04/14 13:29:14 vierinen Exp $
*
* $Log: gra_com.c,v $
* Revision 1.1.1.1 2005/04/14 13:29:14 vierinen
* initial matc automake package
*
* Revision 1.2 1998/08/01 12:34:42 jpr
*
* Added Id, started Log.
*
*
*/
#include "elmer/matc.h"
VARIABLE *gra_gopen(var) VARIABLE *var;
{
char *name;
if (NEXT(var) != NULL)
{
name = var_to_string(NEXT(var));
gra_init_matc((int)*MATR(var), name);
FREEMEM(name);
}
else
{
gra_init_matc((int)*MATR(var), NULL);
}
return NULL;
}
VARIABLE *gra_gclose()
{
GRA_CLOSE();
return NULL;
}
VARIABLE *gra_gclear()
{
GRA_CLEAR();
return NULL;
}
VARIABLE *gra_gflush()
{
GRA_FLUSH();
return NULL;
}
VARIABLE *gra_gdefcolor(var) VARIABLE *var;
{
double *m = MATR(NEXT(var));
double r, g, b;
int i;
i = *MATR(var);
r = *m++;
g = *m++;
b = *m++;
GRA_DEFCOLOR(i, r, g, b);
return NULL;
}
VARIABLE *gra_gcolor(var) VARIABLE *var;
{
GRA_COLOR((int)*MATR(var));
return NULL;
}
VARIABLE *gra_gpolyline(var) VARIABLE *var;
{
GRA_POLYLINE((int)*MATR(var), MATR(NEXT(var)));
return NULL;
}
VARIABLE *gra_gdraw(var) VARIABLE *var;
{
GRA_DRAW(MATR(var));
return NULL;
}
VARIABLE *gra_gmove(var) VARIABLE *var;
{
GRA_MOVE(MATR(var));
return NULL;
}
VARIABLE *gra_gpolymarker(var) VARIABLE *var;
{
GRA_POLYMARKER((int)*MATR(var),(int)*MATR(NEXT(var)),MATR(NEXT(NEXT(var))));
return NULL;
}
VARIABLE *gra_gmarker(var) VARIABLE *var;
{
GRA_MARKER((int)*MATR(var),MATR(NEXT(var)));
return NULL;
}
VARIABLE *gra_gareafill(var) VARIABLE *var;
{
GRA_AREAFILL((int)*MATR(var),MATR(NEXT(var)));
return NULL;
}
VARIABLE *gra_gtext(var) VARIABLE *var;
{
double *m = MATR(var);
double h, r;
char *str;
h = *m++;
r = *m++;
str = var_to_string(NEXT(var));
GRA_TEXT(h, r, str);
FREEMEM(str);
return NULL;
}
VARIABLE *gra_gimage(var) VARIABLE *var;
{
int w, h, d;
double *m = MATR(var);
w = *m++;
h = *m++;
d = *m++;
GRA_IMAGE(w, h, d, MATR(NEXT(var)));
return NULL;
}
VARIABLE *gra_gwindow(var) VARIABLE *var;
{
double x1, x2, y1, y2, z1, z2;
double *m = MATR(var);
x1 = *m++;
x2 = *m++;
y1 = *m++;
y2 = *m++;
z1 = *m++;
z2 = *m++;
GRA_WINDOW(x1,x2,y1,y2,z1,z2);
return NULL;
}
VARIABLE *gra_gviewport(var) VARIABLE *var;
{
double x1, x2, y1, y2;
double *m = MATR(var);
x1 = *m++;
x2 = *m++;
y1 = *m++;
y2 = *m++;
GRA_VIEWPORT(x1,x2,y1,y2);
return NULL;
}
VARIABLE *gra_gtranslate(var) VARIABLE *var;
{
double x, y, z;
double *m = MATR(var);
x = *m++;
y = *m++;
z = *m++;
GRA_TRANSLATE(x,y,z);
return NULL;
}
VARIABLE *gra_grotate(var) VARIABLE *var;
{
double x, y, z;
double *m = MATR(var);
x = *m++;
y = *m++;
z = *m++;
GRA_ROTATE(x,y,z);
return NULL;
}
VARIABLE *gra_gscale(var) VARIABLE *var;
{
double x, y, z;
double *m = MATR(var);
x = *m++;
y = *m++;
z = *m++;
GRA_SCALE(x,y,z);
return NULL;
}
VARIABLE *gra_gviewpoint(var) VARIABLE *var;
{
double xf, yf, zf, xt = 0, yt = 0, zt = 0;
double *m = MATR(var);
xf = *m++;
yf = *m++;
zf = *m++;
if (NEXT(var) != NULL)
{
m = MATR(NEXT(var));
xt = *m++;
yt = *m++;
zt = *m++;
}
GRA_VIEWPOINT(xf,yf,zf,xt,yt,zt);
return NULL;
}
VARIABLE *gra_ggetmatrix(var) VARIABLE *var;
{
VARIABLE *res;
res = var_temp_new(TYPE_DOUBLE, 4, 4);
GRA_GETMATRIX(MATR(res));
return res;
}
VARIABLE *gra_gsetmatrix(var) VARIABLE *var;
{
GRA_SETMATRIX(MATR(var));
return NULL;
}
VARIABLE *gra_gperspective(var) VARIABLE *var;
{
GRA_PERSPECTIVE(*MATR(var));
return NULL;
}
VARIABLE *gra_gdbuffer(var) VARIABLE *var;
{
GRA_DBUFFER(1);
return NULL;
}
VARIABLE *gra_gsbuffer(var) VARIABLE *var;
{
GRA_SBUFFER(1);
return NULL;
}
VARIABLE *gra_gswapbuf(var) VARIABLE *var;
{
GRA_SWAPBUF(1);
return NULL;
}
void gra_com_init()
{
com_init( "gopen", FALSE, FALSE, gra_gopen, 1, 2, "Sorry, no help available!");
com_init( "gclose", FALSE, FALSE, gra_gclose, 0, 0, "Sorry, no help available!");
com_init( "gclear", FALSE, FALSE, gra_gclear, 0, 0, "Sorry, no help available!");
com_init( "gflush", FALSE, FALSE, gra_gflush, 0, 0, "Sorry, no help available!");
com_init( "gdefcolor", FALSE, FALSE, gra_gdefcolor, 2, 2, "Sorry, no help available!");
com_init( "gcolor", FALSE, FALSE, gra_gcolor, 1, 1, "Sorry, no help available!");
com_init( "gpolyline", FALSE, FALSE, gra_gpolyline, 2, 2, "Sorry, no help available!");
com_init( "gdraw", FALSE, FALSE, gra_gdraw, 1, 1, "Sorry, no help available!");
com_init( "gmove", FALSE, FALSE, gra_gmove, 1, 1, "Sorry, no help available!");
com_init( "gpolymarker", FALSE, FALSE, gra_gpolymarker, 3, 3, "Sorry, no help available!");
com_init( "gmarker", FALSE, FALSE, gra_gmarker, 2, 2, "Sorry, no help available!");
com_init( "gareafill", FALSE, FALSE, gra_gareafill, 2, 2, "Sorry, no help available!");
com_init( "gimage", FALSE, FALSE, gra_gimage, 2, 2, "Sorry, no help available!");
com_init( "gtext", FALSE, FALSE, gra_gtext, 2, 2, "Sorry, no help available!");
com_init( "gwindow", FALSE, FALSE, gra_gwindow, 1, 1, "Sorry, no help available!");
com_init( "gviewport", FALSE, FALSE, gra_gviewport, 1, 1, "Sorry, no help available!");
com_init( "gtranslate", FALSE, FALSE, gra_gtranslate, 1, 1, "Sorry, no help available!");
com_init( "grotate", FALSE, FALSE, gra_grotate, 1, 1, "Sorry, no help available!");
com_init( "gscale", FALSE, FALSE, gra_gscale, 1, 1, "Sorry, no help available!");
com_init( "gviewpoint", FALSE, FALSE, gra_gviewpoint, 1, 2, "Sorry, no help available!");
com_init( "gdbuffer", FALSE, FALSE, gra_gdbuffer, 0, 0, "Sorry, no help available!");
com_init( "gsbuffer", FALSE, FALSE, gra_gsbuffer, 0, 0, "Sorry, no help available!");
com_init( "gswapbuf", FALSE, FALSE, gra_gswapbuf, 0, 0, "Sorry, no help available!");
com_init( "ggetmatrix", FALSE, FALSE, gra_ggetmatrix, 0, 0, "Sorry, no help available!");
com_init( "gsetmatrix", FALSE, FALSE, gra_gsetmatrix, 1, 1, "Sorry, no help available!");
com_init( "gperspective", FALSE, FALSE, gra_gperspective, 1, 1, "Sorry, no help available!");
com_init( "gc3d", FALSE, FALSE, c3d_gc3d, 1, 1, "Sorry, no help available!");
com_init( "gc3dlevels", FALSE, FALSE, c3d_gc3dlevels, 1, 1, "Sorry, no help available!");
}
syntax highlighted by Code2HTML, v. 0.9.1