home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Garbo
/
Garbo.cdr
/
mac
/
source
/
macvglph.cpt
/
MacVogl-alpha1
/
vcalls.c
< prev
next >
Wrap
C/C++ Source or Header
|
1991-10-17
|
3KB
|
262 lines
#include "vogl.h"
/*
* Handles all the v4f v3f v2f calls
*/
/*
* vcall
*
* Specify a generic point.
*/
void
vcall(vector, len)
double vector[];
int len;
{
Vector vec;
vec[0] = vector[0];
vec[1] = vector[1];
vec[2] = 0.0;
vec[3] = 1.0;
if (len == 3) {
vec[2] = vector[2];
vec[3] = 1.0;
} else if (len == 4) {
vec[2] = vector[2];
vec[3] = vector[3];
}
if (vdevice.save) {
vdevice.savex = vec[V_X];
vdevice.savey = vec[V_Y];
vdevice.savez = vec[V_Z];
}
switch (vdevice.bgnmode) {
case VLINE:
if (vdevice.save) {
vdevice.save = 0;
move(vec[V_X], vec[V_Y], vec[V_Z]);
break;
}
draw(vec[V_X], vec[V_Y], vec[V_Z]);
break;
case VPNT:
pnt(vec[V_X], vec[V_Y], vec[V_Z]);
break;
case VCLINE:
if (vdevice.save) {
vdevice.save = 0;
move(vec[V_X], vec[V_Y], vec[V_Z]);
break;
}
draw(vec[V_X], vec[V_Y], vec[V_Z]);
break;
case VPOLY:
if (vdevice.save) {
vdevice.save = 0;
pmv(vec[V_X], vec[V_Y], vec[V_Z]);
break;
}
pdr(vec[V_X], vec[V_Y], vec[V_Z]);
break;
default:
move(vec[V_X], vec[V_Y], vec[V_Z]);
}
}
/*
* v4f
* Adds a 4D point to our fake point buffer
*/
void
v4f(vec)
double vec[4];
{
vcall(vec, 4);
}
/*
* v3f
* Adds a 3D point to our fake point buffer
*/
void
v3f(vec)
double vec[3];
{
vcall(vec, 3);
}
/*
* v2f
* Adds a 2D point to our fake point buffer
*/
void
v2f(vec)
double vec[2];
{
vcall(vec, 2);
}
/*
* v4d
* Adds a 4D point to our fake point buffer
*/
void
v4d(vec)
double vec[4];
{
double v[4];
v[0] = vec[0];
v[1] = vec[1];
v[2] = vec[2];
v[3] = vec[3];
vcall(v, 4);
}
/*
* v3d
* Adds a 3D point to our fake point buffer
*/
void
v3d(vec)
double vec[3];
{
double v[3];
v[0] = vec[0];
v[1] = vec[1];
v[2] = vec[2];
vcall(v, 3);
}
/*
* v2d
* Adds a 2D point to our fake point buffer
*/
void
v2d(vec)
long vec[2];
{
double v[2];
v[0] = vec[0];
v[1] = vec[1];
vcall(v, 2);
}
/*
* v4i
* Adds a 4D point to our fake point buffer
*/
void
v4i(vec)
long vec[4];
{
double v[4];
v[0] = vec[0];
v[1] = vec[1];
v[2] = vec[2];
v[3] = vec[3];
vcall(v, 4);
}
/*
* v3i
* Adds a 3D point to our fake point buffer
*/
void
v3i(vec)
long vec[3];
{
double v[3];
v[0] = vec[0];
v[1] = vec[1];
v[2] = vec[2];
vcall(v, 3);
}
/*
* v2i
* Adds a 2D point to our fake point buffer
*/
void
v2i(vec)
long vec[2];
{
double v[2];
v[0] = vec[0];
v[1] = vec[1];
vcall(v, 2);
}
/*
* v4s
* Adds a 4D point to our fake point buffer
*/
void
v4s(vec)
short vec[4];
{
double v[4];
v[0] = vec[0];
v[1] = vec[1];
v[2] = vec[2];
v[3] = vec[3];
vcall(v, 4);
}
/*
* v3s
* Adds a 3D point to our fake point buffer
*/
void
v3s(vec)
short vec[3];
{
double v[3];
v[0] = vec[0];
v[1] = vec[1];
v[2] = vec[2];
vcall(v, 3);
}
/*
* v2s
* Adds a 2D point to our fake point buffer
*/
void
v2s(vec)
short vec[2];
{
double v[2];
v[0] = vec[0];
v[1] = vec[1];
vcall(v, 2);
}