ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/util/glare.h
Revision: 2.2
Committed: Tue May 25 14:54:05 1993 UTC (30 years, 10 months ago) by greg
Content type: text/plain
Branch: MAIN
Changes since 2.1: +1 -1 lines
Log Message:
reduced linearity of splittable source

File Contents

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