This is plvpor.c in view mode; [Download] [Up]
/* Sets the edges of the viewport to the specified normalized subpage */ /* coordinates */ #include "plplot.h" void plvpor(xmin, xmax, ymin, ymax) double xmin, xmax, ymin, ymax; { double spdxmi, spdxma, spdymi, spdyma; double vpdxmi, vpdxma, vpdymi, vpdyma; int vppxmi, vppxma, vppymi, vppyma; int nx, ny, cs; int level; glev(&level); if (level < 1) plexit("Please call plstar before calling plvpor."); if((xmin>=xmax)||(ymin>=ymax)||(xmin<0.)|| (ymin<0.)||(xmax>1.)||(ymax>1.)) plexit("Invalid limits in plsvpa."); gsub(&nx,&ny,&cs); if ((cs<=0) || (cs>(nx*ny))) plexit("Please call pladv or plenv to go to a subpage."); gspd(&spdxmi,&spdxma,&spdymi,&spdyma); vpdxmi = spdxmi + (spdxma - spdxmi) * xmin; vpdxma = spdxmi + (spdxma - spdxmi) * xmax; vpdymi = spdymi + (spdyma - spdymi) * ymin; vpdyma = spdymi + (spdyma - spdymi) * ymax; svpd(vpdxmi,vpdxma,vpdymi,vpdyma); vppxmi = dcpcx(vpdxmi); vppxma = dcpcx(vpdxma); vppymi = dcpcy(vpdymi); vppyma = dcpcy(vpdyma); svpp(vppxmi,vppxma,vppymi,vppyma); sclp(vppxmi,vppxma,vppymi,vppyma); slev(2); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.