ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/cv/arch2rad.c
(Generate patch)

Comparing ray/src/cv/arch2rad.c (file contents):
Revision 1.1 by greg, Tue Dec 11 08:45:46 1990 UTC vs.
Revision 2.1 by greg, Tue Nov 12 17:02:07 1991 UTC

# Line 194 | Line 194 | FILE   *fp;
194   {
195          char    buf[MAXSTR];
196          int     i, n;
197 +        register int    c;
198                                          /* get file name */
199          if (fgets(buf, MAXSTR, fp) == NULL)
200                  goto readerr;
201 <        if ((n = strlen(buf)) < 1)
201 <                goto readerr;
202 <        buf[n-1] = '\0';
201 >        buf[strlen(buf)-1] = '\0';
202          fhead.filename = savestr(buf);
203                                          /* get layers */
204          fhead.layer[0] = "Worksheet";
205          for (i = 1; i <= 8; i++) {
206 <                if (fscanf(fp, "Layer No.%d", &n) != 1 || n != i)
206 >                if (fscanf(fp, "L%*[^0-8]%d", &n) != 1 || n != i)
207                          goto readerr;
208 <                while ((n = getc(fp)) != EOF && (n == ' ' || n == '\t'))
208 >                while ((c = getc(fp)) != EOF && (c == ' ' || c == '\t'))
209                          ;
210 <                if (n == EOF)
210 >                if (c == EOF)
211                          goto readerr;
212 <                ungetc(n, fp);
212 >                ungetc(c, fp);
213                  if (fgets(buf, MAXSTR, fp) == NULL)
214                          goto readerr;
215                  buf[strlen(buf)-1] = '\0';
# Line 427 | Line 426 | FILE   *fp;
426                                          /* check for repeats */
427          rept = 0; nrepts = 0;
428          for (i = 0; i < nm; i++) {
429 <                if (ml[i] == sm) {
429 >                if (ml[i] == sm || !strcmp(ml[i], VOIDID)) {
430                          rept |= 1<<i;
431                          nrepts++;
432 +                        continue;
433                  }
434                  for (j = 0; j < i; j++)
435 <                        if (ml[j] == ml[i]) {
435 >                        if (!(rept & 1<<j) && ml[j] == ml[i]) {
436                                  rept |= 1<<j;
437                                  nrepts++;
438                          }
439          }
440                                          /* print antimatter and modlist */
441 <        fprintf(fp, "\nvoid antimatter %s\n", openmod);
441 >        fprintf(fp, "\n%s antimatter %s\n", VOIDID, openmod);
442          fprintf(fp, "%d %s", 1+nm-nrepts, sm);
443          for (i = 0; i < nm; i++)
444                  if (!(rept & 1<<i))
# Line 464 | Line 464 | FILE   *fp;
464                  newp.h[i] = p->h[i];
465          }
466                                          /* spread reference and opposite */
467 <        if (p->x[1] > p->x[0]) {
467 >        if (p->x[2] > p->x[0]) {
468                  newp.x[0] -= 2;
469 <                newp.x[1] += 2;
469 >                newp.x[1] -= 2;
470                  newp.x[2] += 2;
471 <                newp.x[3] -= 2;
472 <        } else if (p->x[0] > p->x[1]) {
471 >                newp.x[3] += 2;
472 >        } else if (p->x[0] > p->x[2]) {
473                  newp.x[0] += 2;
474 <                newp.x[1] -= 2;
474 >                newp.x[1] += 2;
475                  newp.x[2] -= 2;
476 <                newp.x[3] += 2;
476 >                newp.x[3] -= 2;
477          }
478 <        if (p->y[1] > p->y[0]) {
478 >        if (p->y[2] > p->y[0]) {
479                  newp.y[0] -= 2;
480 <                newp.y[1] += 2;
480 >                newp.y[1] -= 2;
481                  newp.y[2] += 2;
482 <                newp.y[3] -= 2;
483 <        } else if (p->y[0] > p->y[1]) {
482 >                newp.y[3] += 2;
483 >        } else if (p->y[0] > p->y[2]) {
484                  newp.y[0] += 2;
485 <                newp.y[1] -= 2;
485 >                newp.y[1] += 2;
486                  newp.y[2] -= 2;
487 <                newp.y[3] += 2;
487 >                newp.y[3] -= 2;
488          }
489                                                  /* put out faces */
490          sprintf(buf, "op%d", ++nopens);
491 <        putface(openmod, buf, "ref", &newp, 0, 4, 7, 3, fp);
492 <        putface(openmod, buf, "opp", &newp, 1, 2, 6, 5, fp);
493 <        putface(openmod, buf, "end1", &newp, 3, 7, 6, 2, fp);
494 <        putface(openmod, buf, "end2", &newp, 0, 1, 5, 4, fp);
495 <        putface(openmod, buf, "bot", &newp, 0, 3, 2, 1, fp);
496 <        putface(openmod, buf, "top", &newp, 4, 5, 6, 7, fp);
491 >        putface(openmod, buf, "ref", &newp, 4, 5, 1, 0, fp);
492 >        putface(openmod, buf, "opp", &newp, 2, 6, 7, 3, fp);
493 >        putface(openmod, buf, "end1", &newp, 5, 6, 2, 1, fp);
494 >        putface(openmod, buf, "end2", &newp, 3, 7, 4, 0, fp);
495 >        putface(openmod, buf, "bot", &newp, 1, 2, 3, 0, fp);
496 >        putface(openmod, buf, "top", &newp, 7, 6, 5, 4, fp);
497   }
498  
499  
# Line 506 | Line 506 | register RULEHD        *rp;
506          ID      tmpid;
507          
508          if (rp->qflg & FL(Q_LAY)) {             /* check layer */
509 <                tmpid.name = NULL;
509 >                tmpid.name = fhead.layer[bp->layer];
510                  tmpid.number = bp->layer;
511                  if (!matchid(&tmpid, &idm(rp)[Q_LAY]))
512                          return(0);
# Line 543 | Line 543 | FILE   *fp;
543                  return;
544          bn = blkname(bp);
545          if (ff & 1<<F_REF)
546 <                putface(m, bn, "ref", &bp->p, 3, 7, 4, 0, fp);
546 >                putface(m, bn, "ref", &bp->p, 4, 5, 1, 0, fp);
547          if (ff & 1<<F_OPP)
548 <                putface(m, bn, "opp", &bp->p, 5, 6, 2, 1, fp);
548 >                putface(m, bn, "opp", &bp->p, 2, 6, 7, 3, fp);
549          if (ff & 1<<F_END) {
550 <                putface(m, bn, "end1", &bp->p, 2, 6, 7, 3, fp);
551 <                putface(m, bn, "end2", &bp->p, 4, 5, 1, 0, fp);
550 >                putface(m, bn, "end1", &bp->p, 5, 6, 2, 1, fp);
551 >                putface(m, bn, "end2", &bp->p, 3, 7, 4, 0, fp);
552          }
553          if (ff & 1<<F_BOT)
554                  putface(m, bn, "bot", &bp->p, 1, 2, 3, 0, fp);
# Line 564 | Line 564 | register BLOCK *bp;
564          static char     nambuf[32];
565          static int      blkcnt = 0;
566          register char   *nam;
567 <        register int    i;
567 >        register int    i, j;
568  
569 +        sprintf(nambuf, "l%d.", bp->layer);
570 +        i = strlen(nambuf);
571          nam = bp->refid.name;
570        if (nam == NULL)
571                nam = fhead.layer[bp->layer];
572          if (nam == NULL) {
573 <                sprintf(nambuf, "l%d.", bp->layer);
574 <                i = strlen(nambuf);
575 <        } else {
576 <                for (i = 0; i < 12 && nam[i]; i++) {
577 <                        if (nam[i] == ' ' || nam[i] == '\t')
578 <                                nambuf[i] = '_';
573 >                nam = fhead.layer[bp->layer];
574 >                if (nam != NULL)
575 >                        i = 0;
576 >        }
577 >        if (nam != NULL) {
578 >                for (j = 0; j < 12 && nam[j]; j++) {
579 >                        if (nam[j] == ' ' || nam[j] == '\t')
580 >                                nambuf[i++] = '_';
581                          else
582 <                                nambuf[i] = nam[i];
582 >                                nambuf[i++] = nam[j];
583                  }
584                  nambuf[i++] = '.';
585          }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines