--- ray/src/cv/arch2rad.c 1991/10/14 09:51:16 1.7 +++ ray/src/cv/arch2rad.c 2023/02/09 21:54:10 2.5 @@ -1,17 +1,15 @@ -/* Copyright (c) 1990 Regents of the University of California */ - #ifndef lint -static char SCCSid[] = "$SunId$ LBL"; +static const char RCSid[] = "$Id: arch2rad.c,v 2.5 2023/02/09 21:54:10 greg Exp $"; #endif - /* * Convert Architrion file to Radiance * * Greg Ward */ -#include +#include +#include "rtio.h" #include "trans.h" #define DEFMAPFILE "/usr/local/lib/ray/lib/arch.map" @@ -94,10 +92,39 @@ char openmod[] = "opening"; char *progname; /* argv[0] */ +void arch2rad(FILE *inp, FILE *out); +void arch2names(FILE *inp); -main(argc, argv) /* translate Architrion file */ -int argc; -char *argv[]; +int hasmatch(BLOCK *bp, RULEHD *mp); + +void getfhead(FILE *fp); +void puthead(FILE *fp); + +int getblock(BLOCK *bp, FILE *fp); +void putblock(BLOCK *bp, FILE *fp); +void doneblock(BLOCK *bp); + +int getopening(OPNG *op, FILE *fp); +void add2quals(BLOCK *bp); +int matchrule(BLOCK *bp, RULEHD *rp); + +void putopenmod(char *sm, char *ml[], int nm, FILE *fp); +void putface(char *m, char *bn, char *fn, PRISM *p, + int a, int b, int c, int d, FILE *fp); +void putfaces(char *m, BLOCK *bp, int ff, FILE *fp); +void putpoint(PRISM *p, int n, FILE *fp); +void putopening(OPNG *op, FILE *fp); + +int checkface(PRISM *p, int a, int b, int c, int d); + +void lcross(long vr[3], long v1[3], long v2[3]); + + +int +main( /* translate Architrion file */ + int argc, + char *argv[] +) { int donames = 0; /* -n flag, produce namelist */ int i; @@ -139,8 +166,11 @@ userr: } -arch2rad(inp, out) /* translate Architrion file to Radiance */ -FILE *inp, *out; +void +arch2rad( /* translate Architrion file to Radiance */ + FILE *inp, + FILE *out +) { int nbs, nos; BLOCK blk; @@ -164,8 +194,10 @@ FILE *inp, *out; } -arch2names(inp) /* get name list from an Architrion file */ -FILE *inp; +void +arch2names( /* get name list from an Architrion file */ + FILE *inp +) { BLOCK blk; @@ -177,9 +209,11 @@ FILE *inp; } -hasmatch(bp, mp) /* check for any match in rule list */ -BLOCK *bp; -RULEHD *mp; +int +hasmatch( /* check for any match in rule list */ + BLOCK *bp, + RULEHD *mp +) { if (mp == NULL) return(0); @@ -189,12 +223,14 @@ RULEHD *mp; } -getfhead(fp) /* get file header */ -FILE *fp; +void +getfhead( /* get file header */ + FILE *fp +) { char buf[MAXSTR]; int i, n; - register int c; + int c; /* get file name */ if (fgets(buf, MAXSTR, fp) == NULL) goto readerr; @@ -244,10 +280,12 @@ readerr: } -puthead(fp) /* put out header information */ -FILE *fp; +void +puthead( /* put out header information */ + FILE *fp +) { - register int i; + int i; fprintf(fp, "# File created by: %s\n", progname); fprintf(fp, "# Input file: %s\n", fhead.filename); @@ -260,9 +298,11 @@ FILE *fp; } -getblock(bp, fp) /* get an Architrion block */ -register BLOCK *bp; -FILE *fp; +int +getblock( /* get an Architrion block */ + BLOCK *bp, + FILE *fp +) { char word[32]; int i; @@ -301,11 +341,13 @@ memerr: } -getopening(op, fp) /* read in opening from fp */ -register OPNG *op; -FILE *fp; +int +getopening( /* read in opening from fp */ + OPNG *op, + FILE *fp +) { - register int c; + int c; char word[32]; if (fgets(word, sizeof(word), fp) == NULL) @@ -340,22 +382,26 @@ FILE *fp; } -doneblock(bp) /* free data associated with bp */ -register BLOCK *bp; +void +doneblock( /* free data associated with bp */ + BLOCK *bp +) { - register int i; + int i; if (bp->nopenings > 0) { for (i = 0; i < bp->nopenings; i++) doneid(&bp->opening[i].frame); - free((char *)bp->opening); + free((void *)bp->opening); } doneid(&bp->refid); } -add2quals(bp) /* add to qualifier lists */ -register BLOCK *bp; +void +add2quals( /* add to qualifier lists */ + BLOCK *bp +) { ID tmpid; @@ -374,9 +420,11 @@ register BLOCK *bp; } -putblock(bp, fp) /* put out a block */ -BLOCK *bp; -FILE *fp; +void +putblock( /* put out a block */ + BLOCK *bp, + FILE *fp +) { RULEHD *rp; char *mod[NFACES], *sillmod; @@ -411,13 +459,16 @@ FILE *fp; } -putopenmod(sm, ml, nm, fp) /* put out opening modifier */ -char *sm, *ml[]; -int nm; -FILE *fp; +void +putopenmod( /* put out opening modifier */ + char *sm, + char *ml[], + int nm, + FILE *fp +) { int rept, nrepts; - register int i, j; + int i, j; if (sm == NULL) { /* if no sill modifier, use list */ sm = *ml++; @@ -447,15 +498,17 @@ FILE *fp; } -putopening(op, fp) /* put out an opening */ -OPNG *op; -FILE *fp; +void +putopening( /* put out an opening */ + OPNG *op, + FILE *fp +) { static int nopens = 0; char buf[32]; - register PRISM *p = &op->p; + PRISM *p = &op->p; PRISM newp; - register int i; + int i; /* copy original prism */ for (i = 0; i < 4; i++) { newp.x[i] = p->x[i]; @@ -498,11 +551,12 @@ FILE *fp; int -matchrule(bp, rp) /* see if block matches this rule */ -register BLOCK *bp; -register RULEHD *rp; +matchrule( /* see if block matches this rule */ + BLOCK *bp, + RULEHD *rp +) { - register int i; + int i; ID tmpid; if (rp->qflg & FL(Q_LAY)) { /* check layer */ @@ -531,11 +585,13 @@ register RULEHD *rp; } -putfaces(m, bp, ff, fp) /* put out faces */ -char *m; -BLOCK *bp; -register int ff; -FILE *fp; +void +putfaces( /* put out faces */ + char *m, + BLOCK *bp, + int ff, + FILE *fp +) { char *blkname(), *bn; @@ -558,13 +614,14 @@ FILE *fp; char * -blkname(bp) /* think up a good name for this block */ -register BLOCK *bp; +blkname( /* think up a good name for this block */ + BLOCK *bp +) { static char nambuf[32]; static int blkcnt = 0; - register char *nam; - register int i, j; + char *nam; + int i, j; sprintf(nambuf, "l%d.", bp->layer); i = strlen(nambuf); @@ -592,12 +649,18 @@ register BLOCK *bp; } -putface(m, bn, fn, p, a, b, c, d, fp) /* put out a face */ -char *m; -char *bn, *fn; -PRISM *p; -int a, b, c, d; -FILE *fp; +void +putface( /* put out a face */ + char *m, + char *bn, + char *fn, + PRISM *p, + int a, + int b, + int c, + int d, + FILE *fp +) { int cf; @@ -631,9 +694,12 @@ FILE *fp; #define ldot(v1,v2) (v1[0]*v2[0]+v1[1]*v2[1]+v1[2]*v2[2]) -long -lcross(vr, v1, v2) /* compute cross product */ -register long vr[3], v1[3], v2[3]; +void +lcross( /* compute cross product */ + long vr[3], + long v1[3], + long v2[3] +) { vr[0] = v1[1]*v2[2] - v1[2]*v2[1]; vr[1] = v1[2]*v2[0] - v1[0]*v2[2]; @@ -644,9 +710,14 @@ register long vr[3], v1[3], v2[3]; #define labs(a) ((a)>0 ? (a) : -(a)) -checkface(p, a, b, c, d) /* check a face for validity */ -register PRISM *p; -int a, b, c, d; +int +checkface( /* check a face for validity */ + PRISM *p, + int a, + int b, + int c, + int d +) { int rval = 0; long lt; @@ -694,10 +765,12 @@ int a, b, c, d; } -putpoint(p, n, fp) /* put out a point */ -register PRISM *p; -int n; -FILE *fp; +void +putpoint( /* put out a point */ + PRISM *p, + int n, + FILE *fp +) { register int i = n&3; @@ -706,15 +779,20 @@ FILE *fp; } -eputs(s) -char *s; +void +eputs( + const char *s +) { fputs(s, stderr); } -quit(code) -int code; +void +quit( + int code +) { exit(code); } +