31 |
|
|
32 |
|
ANGLE glarang[180] = {AEND}; /* glare calculation angles */ |
33 |
|
int nglarangs = 0; |
34 |
+ |
double maxtheta; /* maximum angle (in radians) */ |
35 |
|
int hsize; /* horizontal size */ |
36 |
|
int hlim; /* central limit of horizontal */ |
37 |
|
|
194 |
|
/* set direction vectors */ |
195 |
|
for (i = 0; glarang[i] != AEND; i++) |
196 |
|
; |
197 |
< |
if (glarang[0] <= 0 || glarang[i-1] >= 180) { |
197 |
> |
if (i > 0 && glarang[0] <= 0 || glarang[i-1] >= 180) { |
198 |
|
fprintf(stderr, "%s: glare angles must be between 1 and 179\n", |
199 |
|
progname); |
200 |
|
exit(1); |
201 |
|
} |
202 |
|
nglarangs = i; |
203 |
|
/* nglardirs = 2*nglarangs + 1; */ |
203 |
– |
/* maxtheta = (PI/180.)*glarang[nglarangs-1]; */ |
204 |
|
/* vsize = SAMPDENS; */ |
205 |
+ |
if (nglarangs > 0) |
206 |
+ |
maxtheta = (PI/180.)*glarang[nglarangs-1]; |
207 |
+ |
else |
208 |
+ |
maxtheta = 0.0; |
209 |
|
hlim = SAMPDENS*maxtheta; |
210 |
|
hsize = SAMPDENS + hlim; |
211 |
|
if (hsize > (int)(PI*SAMPDENS)) |
339 |
|
for (i = 0; i < nglardirs; i++) |
340 |
|
printf("\t%f\t%f\n", (180.0/PI)*indirect[i].theta, |
341 |
|
PI * indirect[i].sum / (double)indirect[i].n); |
342 |
< |
printf("END indirect illuminances\n"); |
342 |
> |
printf("END indirect illuminance\n"); |
343 |
|
} |