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

  1. /* Set up a new line style of "nels" elements, with mark and space */
  2. /* lengths given by arrays "mk" and "sp". */
  3.  
  4. #include "plplot.h"
  5. #include "declare.h"
  6.  
  7. void plstyl(nels,mk,sp)
  8. PLINT nels, *mk, *sp;
  9. {
  10.     short int i;
  11.     PLINT level;
  12.  
  13.     glev(&level);
  14.     if (level < 1)  plexit("Please call plstar before calling plstyl.");
  15.  
  16.     if ((nels < 0) || (nels > 10)) {
  17.       plexit("Broken lines cannot have <0 or >10 elements");
  18.     }
  19.  
  20.     nms = nels;
  21.     for (i=0; i<nels; i++) {
  22.         mark[i] = mk[i];
  23.         space[i] = sp[i];
  24.         if ((mk[i] < 0) || (sp[i] < 0))
  25.             plexit("Mark and space lengths must be > 0 in plstyl.");
  26.     }
  27.  
  28.     curel = 0;
  29.     pendn = 1;
  30.     timecnt = 0;
  31.     alarm = mark[curel];
  32. }
  33.  
  34. /* Updates line style variables, called whenever alarm goes off */
  35.  
  36. void plupd()
  37. {
  38.     while ( timecnt >= alarm ) {
  39.         if (pendn != 0) {
  40.             pendn = 0;
  41.             timecnt = timecnt - alarm;
  42.             alarm = space[curel];
  43.         }
  44.         else {
  45.             pendn = 1;
  46.             timecnt = timecnt - alarm;
  47.             curel = curel + 1;
  48.             if (curel >= nms) curel = 0;
  49.             alarm = mark[curel];
  50.         }
  51.     }
  52. }
  53.  
  54.  
  55.