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

Comparing ray/src/util/glarendx.c (file contents):
Revision 1.8 by greg, Thu May 2 13:17:41 1991 UTC vs.
Revision 1.9 by greg, Thu May 2 14:00:58 1991 UTC

# Line 5 | Line 5 | static char SCCSid[] = "$SunId$ LBL";
5   #endif
6  
7   /*
8 < * Compute Glare Index given by program name:
8 > * Compute Glare Index given by program name or -t option:
9   *
10   *      guth_dgr -      Guth discomfort glare rating
11   *      guth_vcp -      Guth visual comfort probability
12 < *      cie_cgi -       CIE Glare Index (1983)
12 > *      cie_cgi -       CIE Glare Index (1983, due to Einhorn)
13 > *      vert_dir -      Direct vertical illuminance
14 > *      vert_ind -      Indirect vertical illuminance (from input)
15 > *      vert_ill -      Total vertical illuminance
16   *
17   *              12 April 1991   Greg Ward       EPFL
18   */
# Line 20 | Line 23 | static char SCCSid[] = "$SunId$ LBL";
23   extern double   erfc();
24  
25   double  posindex();
23 int     headline();
26  
27 < double  direct(), guth_dgr(), guth_vcp(), cie_cgi();
27 > double  direct(), guth_dgr(), guth_vcp(), cie_cgi(),
28 >        indirect(), total();
29  
30   struct named_func {
31          char    *name;
32          double  (*func)();
33 +        char    *descrip;
34   } all_funcs[] = {
35 <        {"direct", direct},
36 <        {"guth_dgr", guth_dgr},
37 <        {"guth_vcp", guth_vcp},
38 <        {"cie_cgi", cie_cgi},
35 >        {"guth_vcp", guth_vcp, "Guth Visual Comfort Probability"},
36 >        {"cie_cgi", cie_cgi, "CIE Glare Index (Einhorn)"},
37 >        {"guth_dgr", guth_dgr, "Guth Disability Glare Rating"},
38 >        {"vert_dir", direct, "Direct Vertical Illuminance"},
39 >        {"vert_ill", total, "Total Vertical Illuminance"},
40 >        {"vert_ind", indirect, "Indirect Vertical Illuminance"},
41          {NULL}
42   };
43  
# Line 92 | Line 98 | char   *argv[];
98                          perror(argv[i]);
99                          exit(1);
100                  }
101 <                                        /* read header */
96 <        getheader(stdin, headline, NULL);
97 <        if (wrongformat) {
98 <                fprintf(stderr, "%s: bad input format\n", progname);
99 <                exit(1);
100 <        }
101 <        if (print_header) {             /* add to header */
102 <                printargs(i, argv, stdout);
103 <                putchar('\n');
104 <        }
105 <                                        /* set view */
106 <        if (setview(&midview) != NULL) {
107 <                fprintf(stderr, "%s: bad view information in input\n",
108 <                                progname);
109 <                exit(1);
110 <        }
111 <                                        /* get findglare data */
112 <        read_input();
113 <                                        /* find calculation */
101 >                                        /* find and run calculation */
102          for (funp = all_funcs; funp->name != NULL; funp++)
103                  if (!strcmp(funp->name, progtail)) {
104 +                        init();
105 +                        read_input();
106 +                        if (print_header) {
107 +                                printargs(i, argv, stdout);
108 +                                putchar('\n');
109 +                        }
110                          print_values(funp->func);
111                          exit(0);                /* we're done */
112                  }
113                                          /* invalid function */
120        fprintf(stderr, "%s: unknown function!\n", progtail);
121        exit(1);
114   userr:
115 <        fprintf(stderr, "Usage: %s [-t type][-h] [input]\n", progname);
115 >        fprintf(stderr, "Usage: %s -t type [-h] [input]\n", progname);
116 >        fprintf(stderr, "\twhere 'type' is one of the following:\n");
117 >        for (funp = all_funcs; funp->name != NULL; funp++)
118 >                fprintf(stderr, "\t%12s\t%s\n", funp->name, funp->descrip);
119          exit(1);
120   }
121  
# Line 141 | Line 136 | char   *s;
136   }
137  
138  
139 + init()                          /* initialize calculation */
140 + {
141 +                                        /* read header */
142 +        getheader(stdin, headline, NULL);
143 +        if (wrongformat) {
144 +                fprintf(stderr, "%s: bad input format\n", progname);
145 +                exit(1);
146 +        }
147 +                                        /* set view */
148 +        if (setview(&midview) != NULL) {
149 +                fprintf(stderr, "%s: bad view information in input\n",
150 +                                progname);
151 +                exit(1);
152 +        }
153 + }
154 +
155 +
156   read_input()                    /* read glare sources from stdin */
157   {
158   #define S_SEARCH        0
# Line 213 | Line 225 | double (*funp)();
225  
226  
227   double
228 < direct(gd)                      /* compute direct illuminance */
228 > direct(gd)                      /* compute direct vertical illuminance */
229   struct glare_dir        *gd;
230   {
231          FVECT   mydir;
# Line 228 | Line 240 | struct glare_dir       *gd;
240                          dval += d * gs->dom * gs->lum;
241          }
242          return(dval);
243 + }
244 +
245 +
246 + double
247 + indirect(gd)                    /* return indirect vertical illuminance */
248 + struct glare_dir        *gd;
249 + {
250 +        return(gd->indirect);
251 + }
252 +
253 +
254 + double
255 + total(gd)                       /* return total vertical illuminance */
256 + struct glare_dir        *gd;
257 + {
258 +        return(direct(gd)+gd->indirect);
259   }
260  
261  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines