This is plside3.c in view mode; [Download] [Up]
/* This routine draws sides around the front of the 3d plot so that */
/* it does not appear to float */
#include "plplot.h"
void plside3a(x,y,z,nx,ny,opt)
int nx, ny, opt;
FLOAT *x, *y, **z;
{
int i;
double cxx, cxy, cyx, cyy, cyz;
double xmin, ymin, zmin, xmax, ymax, zmax, zscale;
double tx, ty, ux, uy;
gw3wc(&cxx,&cxy,&cyx,&cyy,&cyz);
gdom(&xmin,&xmax,&ymin,&ymax);
grange(&zscale,&zmin,&zmax);
if (cxx >= 0.0 && cxy <= 0.0) {
/* Get x, y coordinates of legs and plot */
if (opt != 1) {
for (i=0; i<nx; i++) {
tx = w3wcx(x[i],y[0],zmin);
ty = w3wcy(x[i],y[0],zmin);
ux = w3wcx(x[i],y[0],z[i][0]);
uy = w3wcy(x[i],y[0],z[i][0]);
pljoin(tx,ty,ux,uy);
}
}
if (opt != 2) {
for (i=0; i<ny; i++) {
tx = w3wcx(x[0],y[i],zmin);
ty = w3wcy(x[0],y[i],zmin);
ux = w3wcx(x[0],y[i],z[0][i]);
uy = w3wcy(x[0],y[i],z[0][i]);
pljoin(tx,ty,ux,uy);
}
}
}
else if(cxx <= 0.0 && cxy <= 0.0) {
if (opt != 1 ) {
for (i=0; i<nx; i++) {
tx = w3wcx(x[i],y[ny-1],zmin);
ty = w3wcy(x[i],y[ny-1],zmin);
ux = w3wcx(x[i],y[ny-1],z[i][ny-1]);
uy = w3wcy(x[i],y[ny-1],z[i][ny-1]);
pljoin(tx,ty,ux,uy);
}
}
if (opt != 2) {
for (i=0; i<ny; i++) {
tx = w3wcx(x[0],y[i],zmin);
ty = w3wcy(x[0],y[i],zmin);
ux = w3wcx(x[0],y[i],z[0][i]);
uy = w3wcy(x[0],y[i],z[0][i]);
pljoin(tx,ty,ux,uy);
}
}
}
else if(cxx <= 0.0 && cxy >= 0.0) {
if (opt != 1) {
for (i=0; i<nx; i++) {
tx = w3wcx(x[i],y[ny-1],zmin);
ty = w3wcy(x[i],y[ny-1],zmin);
ux = w3wcx(x[i],y[ny-1],z[i][ny-1]);
uy = w3wcy(x[i],y[ny-1],z[i][ny-1]);
pljoin(tx,ty,ux,uy);
}
}
if (opt != 2) {
for (i=0; i<ny; i++) {
tx = w3wcx(x[nx-1],y[i],zmin);
ty = w3wcy(x[nx-1],y[i],zmin);
ux = w3wcx(x[nx-1],y[i],z[nx-1][i]);
uy = w3wcy(x[nx-1],y[i],z[nx-1][i]);
pljoin(tx,ty,ux,uy);
}
}
}
else if(cxx >= 0.0 && cxy >= 0.0) {
if (opt != 1) {
for (i=0; i<nx; i++) {
tx = w3wcx(x[i],y[0],zmin);
ty = w3wcy(x[i],y[0],zmin);
ux = w3wcx(x[i],y[0],z[i][0]);
uy = w3wcy(x[i],y[0],z[i][0]);
pljoin(tx,ty,ux,uy);
}
}
if (opt != 2) {
for (i=0; i<ny; i++) {
tx = w3wcx(x[nx-1],y[i],zmin);
ty = w3wcy(x[nx-1],y[i],zmin);
ux = w3wcx(x[nx-1],y[i],z[nx-1][i]);
uy = w3wcy(x[nx-1],y[i],z[nx-1][i]);
pljoin(tx,ty,ux,uy);
}
}
}
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.