This is plsvpa.c in view mode; [Download] [Up]
/* Sets the edges of the viewport to the specified absolute */ /* coordinates (mm), measured with respect to the current subpage */ /* boundaries */ #include "plplot.h" void plsvpa(xmin,xmax,ymin,ymax) double xmin, xmax, ymin, ymax; { int nx, ny, cs; double sxmin, symin; double spdxmi, spdxma, spdymi, spdyma; double vpdxmi, vpdxma, vpdymi, vpdyma; int level; glev(&level); if (level<1) plexit("Please call PLSTAR before calling plsvpa."); if((xmin>=xmax)||(ymin>=ymax)||(xmin<0.)||(ymin<0.)) 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); sxmin = dcmmx(spdxmi); symin = dcmmy(spdymi); vpdxmi = mmdcx((double)(sxmin+xmin)); vpdxma = mmdcx((double)(sxmin+xmax)); vpdymi = mmdcy((double)(symin+ymin)); vpdyma = mmdcy((double)(symin+ymax)); svpd(vpdxmi,vpdxma,vpdymi,vpdyma); svpp(dcpcx(vpdxmi),dcpcx(vpdxma),dcpcy(vpdymi),dcpcy(vpdyma)); sclp(dcpcx(vpdxmi),dcpcx(vpdxma),dcpcy(vpdymi),dcpcy(vpdyma)); slev(2); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.