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

Comparing ray/src/util/glaresrc.c (file contents):
Revision 1.1 by greg, Mon Mar 18 12:15:40 1991 UTC vs.
Revision 1.4 by greg, Tue Mar 19 09:10:58 1991 UTC

# Line 52 | Line 52 | analyze()                      /* analyze our scene */
52          for (v = vsize; v >= -vsize; v--) {
53                  getviewspan(v, spanbr);
54                  left = hsize + 1;
55 <                for (h = -hsize; h <= hsize; h++)
55 >                for (h = -hsize; h <= hsize; h++) {
56                          if (spanbr[h+hsize] < 0.0) {    /* off view */
57                                  if (left < h) {
58 <                                        addsrcspan(newspan(left,h-1,v,spanbr));
58 >                                        addsrcspan(newspan(left,h,v,spanbr));
59                                          left = hsize + 1;
60                                  }
61                                  continue;
62                          }
63                          if (spanbr[h+hsize] > threshold) {      /* in source */
64 <                                if (left >= h)
64 >                                if (left > h)
65                                          left = h;
66                          } else {                        /* out of source */
67                                  if (left < h) {
68 <                                        addsrcspan(newspan(left,h-1,v,spanbr));
68 >                                        addsrcspan(newspan(left,h,v,spanbr));
69                                          left = hsize + 1;
70                                  }
71                                  addindirect(h, spanbr[h+hsize]);
72                          }
73 +                }
74                  if (left < h)
75 <                        addsrcspan(newspan(left,h-1,v,spanbr));
75 >                        addsrcspan(newspan(left,h,v,spanbr));
76                  close_sources(v);
77          }
78          close_allsrcs();
# Line 87 | Line 88 | double br;
88          register int    i;
89  
90          if (h <= -hlim) {                       /* left region */
91 <                d = (double)(h+hlim)/SAMPDENS;
91 >                d = (double)(h+hlim)/sampdens;
92                  if (d <= -1.0+FTINY)
93                          return;
94                  tanb = d/sqrt(1.0-d*d);
# Line 101 | Line 102 | double br;
102                  return;
103          }
104          if (h >= hlim) {                        /* right region */
105 <                d = (double)(h-hlim)/SAMPDENS;
105 >                d = (double)(h-hlim)/sampdens;
106                  if (d >= 1.0-FTINY)
107                          return;
108                  tanb = d/sqrt(1.0-d*d);
# Line 152 | Line 153 | comp_thresh()                  /* compute glare threshold */
153                  fprintf(stderr, "%s: threshold zero!\n", progname);
154                  exit(1);
155          }
156 <        if (verbose)
156 >        if (verbose) {
157 >                pict_stats();
158                  fprintf(stderr,
159                          "%s: threshold set to %f cd/m2 from %d samples\n",
160                                  progname, threshold, nsamps);
161 +        }
162   }
163  
164  
# Line 243 | Line 246 | int    v;
246  
247   close_allsrcs()                 /* done with everything */
248   {
249 <        register struct source  *this;
249 >        register struct source  *this, *nsrc;
250  
251 <        for (this = curlist; this != NULL; this = this->next)
251 >        for (this = curlist; this != NULL; this = nsrc) {
252 >                nsrc = this->next;
253                  donesource(this);
254 +        }
255          curlist = NULL;
256   }
257  
# Line 262 | Line 267 | register struct source *sp;
267          sp->dom = 0.0;
268          sp->dir[0] = sp->dir[1] = sp->dir[1] = 0.0;
269          sp->brt = 0.0;
270 +        n = 0;
271          for (ss = sp->first; ss != NULL; ss = ss->next) {
272                  sp->brt += ss->brsum;
273                  n += ss->r - ss->l;
# Line 284 | Line 290 | register struct source *sp;
290          donelist = sp;
291          if (verbose)
292                  fprintf(stderr,
293 <        "%s: found source at (%f,%f,%f), solid angle %f, brightness %f\n",
294 <                        progname, sp->dir[0], sp->dir[1], sp->dir[2], sp->brt);
293 >        "%s: found source at (%f,%f,%f), dw %f, br %f\n",
294 >                        progname, sp->dir[0], sp->dir[1], sp->dir[2],
295 >                        sp->dom, sp->brt);
296   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines