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

Comparing ray/src/util/glare.h (file contents):
Revision 1.2 by greg, Mon Mar 18 14:32:15 1991 UTC vs.
Revision 2.5 by schorsch, Mon Jul 14 22:24:00 2003 UTC

# Line 1 | Line 1
1 < /* Copyright (c) 1991 Regents of the University of California */
2 <
3 < /* SCCSid "$SunId$ LBL" */
4 <
1 > /* RCSid: $Id$ */
2   /*
3   * Common data structures for glare source finding routines
4   */
5 + #ifndef _RAD_GLARE_H_
6 + #define _RAD_GLARE_H_
7  
8   #include "standard.h"
9   #include "view.h"
10   #include "color.h"
11   #include "setscan.h"
12  
13 < #define GLAREBR         10.0            /* glare source is this * avg. lum. */
13 > #ifdef __cplusplus
14 > extern "C" {
15 > #endif
16  
17 < #define SAMPDENS        50              /* samples per unit in image */
17 > #define GLAREBR         7.0             /* glare source is this * avg. lum. */
18 >
19 > #define SAMPDENS        75              /* default samples per unit in image */
20   #define TSAMPSTEP       10              /* sample step to compute threshold */
21  
22 < #define SEPS            2               /* sources this close ==> contig. */
22 > #define SEPS            1               /* sources this close ==> contig. */
23  
24 + #define SAMIN           .005            /* minimum solid angle for source */
25 + #define MAXBUDDY        (4.*sqrt(SAMIN/PI))     /* max separation for pairing */
26 +
27 + #define TOOSMALL(s)     ((s)->brt*(s)->dom < threshold*SAMIN)
28 +
29 + #define SABIG           .025            /* solid angle of splittable source */
30 + #define LCORR           .12             /* linearity of splittable source */
31 +
32   extern VIEW     ourview;                /* our view */
33   extern VIEW     pictview;               /* picture view */
34   extern VIEW     leftview, rightview;    /* leftmost and rightmost views */
# Line 25 | Line 36 | extern VIEW    leftview, rightview;    /* leftmost and right
36   extern int      verbose;                /* verbose reporting */
37   extern char     *progname;              /* global argv[0] */
38  
39 + extern double   threshold;              /* threshold value for glare sources */
40 +
41 + extern int      sampdens;               /* sample density */
42   extern ANGLE    glarang[];              /* glare calculation angles */
43   extern int      nglarangs;
44   extern double   maxtheta;               /* maximum glare angle (in radians) */
45   extern int      hsize;                  /* horizontal size */
32 extern int      hlim;                   /* horizontal limit of central view */
46  
47   #define nglardirs       (2*nglarangs+1)
48 < #define vsize           SAMPDENS
49 < #define h_theta(h)      ((double)(h)/(double)SAMPDENS)
48 > #define vsize           (sampdens-1)
49 > #define hscale(v)       sqrt((double)(sampdens*sampdens - (v)*(v)))
50 > #define hlim(v)         (int)(maxtheta*hscale(v))
51 > #define h_theta(h,v)    (-(h)/hscale(v))
52  
53   extern struct illum {
54          float   theta;          /* glare direction */
55          float   lcos, lsin;     /* cosine and sine to left view */
56          float   rcos, rsin;     /* cosine and sine to right view */
57          double  sum;            /* sum of indirect luminances */
58 <        int     n;              /* number of values in sum */
58 >        double  n;              /* number of values in sum */
59   } *indirect;            /* array of indirect illuminances */
60  
61   struct srcspan {
# Line 52 | Line 67 | struct srcspan {
67  
68   extern struct source {
69          FVECT   dir;            /* source direction */
70 <        float   dom;            /* solid angle of source */
71 <        float   brt;            /* average source brightness */
70 >        double  dom;            /* solid angle of source */
71 >        double  brt;            /* average source brightness */
72          struct srcspan  *first; /* first span for this source */
73          struct source   *next;  /* next source in list */
74   } *donelist;                    /* finished sources */
75  
76 < extern double   getviewpix();
76 > extern double   getviewpix(int vh, int vv);
77 > extern double   pixsize(int x, int y);
78 >
79 > extern long     npixinvw;       /* number of samples in view */
80 > extern long     npixmiss;       /* number of samples missing */
81 >
82 >
83 >
84 > #ifdef __cplusplus
85 > }
86 > #endif
87 > #endif /* _RAD_GLARE_H_ */
88 >

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines