home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 344b.lha / plplot_v2.6 / src / plvpor.c < prev    next >
Encoding:
C/C++ Source or Header  |  1990-01-27  |  1.1 KB  |  39 lines

  1. /* Sets the edges of the viewport to the specified normalized subpage */
  2. /* coordinates */
  3.  
  4. #include "plplot.h"
  5.  
  6. void plvpor(xmin, xmax, ymin, ymax)
  7. PLFLT xmin, xmax, ymin, ymax;
  8. {
  9.     PLFLT spdxmi, spdxma, spdymi, spdyma;
  10.     PLFLT vpdxmi, vpdxma, vpdymi, vpdyma;
  11.     PLINT vppxmi, vppxma, vppymi, vppyma;
  12.     PLINT nx, ny, cs;
  13.     PLINT level;
  14.  
  15.     glev(&level);
  16.     if (level < 1) plexit("Please call plstar before calling plvpor.");
  17.     if((xmin>=xmax)||(ymin>=ymax)||(xmin<0.)||
  18.        (ymin<0.)||(xmax>1.)||(ymax>1.))
  19.         plexit("Invalid limits in plsvpa.");
  20.  
  21.     gsub(&nx,&ny,&cs);
  22.     if ((cs<=0) || (cs>(nx*ny)))
  23.         plexit("Please call pladv or plenv to go to a subpage.");
  24.     gspd(&spdxmi,&spdxma,&spdymi,&spdyma);
  25.     vpdxmi = spdxmi + (spdxma - spdxmi) * xmin;
  26.     vpdxma = spdxmi + (spdxma - spdxmi) * xmax;
  27.     vpdymi = spdymi + (spdyma - spdymi) * ymin;
  28.     vpdyma = spdymi + (spdyma - spdymi) * ymax;
  29.     svpd(vpdxmi,vpdxma,vpdymi,vpdyma);
  30.  
  31.     vppxmi = dcpcx(vpdxmi);
  32.     vppxma = dcpcx(vpdxma);
  33.     vppymi = dcpcy(vpdymi);
  34.     vppyma = dcpcy(vpdyma);
  35.     svpp(vppxmi,vppxma,vppymi,vppyma);
  36.     sclp(vppxmi,vppxma,vppymi,vppyma);
  37.     slev(2);
  38. }
  39.