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

Comparing ray/src/px/pf2.c (file contents):
Revision 2.4 by greg, Wed Nov 9 15:04:52 1994 UTC vs.
Revision 2.7 by schorsch, Sun Mar 28 20:33:14 2004 UTC

# Line 1 | Line 1
1 /* Copyright (c) 1994 Regents of the University of California */
2
1   #ifndef lint
2 < static char SCCSid[] = "$SunId$ LBL";
2 > static const char       RCSid[] = "$Id$";
3   #endif
6
4   /*
5   *  pf2.c - routines used by pfilt.
6   */
7  
8   #include  <stdio.h>
9 <
9 > #include  <stdlib.h>
10   #include  <math.h>
11  
12 + #include  "rterror.h"
13   #include  "random.h"
16
14   #include  "color.h"
15 + #include  "pfilt.h"
16  
17   #define  PI             3.14159265359
20
18   #define  FTINY          (1e-6)
19  
23 extern int  nrows, ncols;       /* number of rows and columns for output */
24
25 extern int  xres, yres;         /* x and y resolution */
26
27 extern int  avghot;             /* true means average in avgbrt spots */
28
29 extern double  hotlvl;          /* brightness considered "hot" */
30
31 extern int  npts;               /* # of points for stars */
32
33 extern double  spread;          /* spread for star points */
34
35 extern char  *progname;
36
37 extern COLOR  exposure;         /* exposure for frame */
38
20   #define  AVGLVL         0.5     /* target mean brightness */
21  
22   double  avgbrt;                 /* average picture brightness */
# Line 52 | Line 33 | HOTPIX *head;                  /* head of avgbrt pixel list */
33  
34   double  sprdfact;               /* computed spread factor */
35  
36 + static void starpoint(COLOR  fcol, int  x, int  y, HOTPIX        *hp);
37  
38 < pass1init()                     /* prepare for first pass */
38 >
39 > extern void
40 > pass1init(void)                 /* prepare for first pass */
41   {
42          avgbrt = 0.0;
43          npix = 0;
# Line 61 | Line 45 | pass1init()                    /* prepare for first pass */
45   }
46  
47  
48 < pass1default()                  /* for single pass */
48 > extern void
49 > pass1default(void)                      /* for single pass */
50   {
51          avgbrt = AVGLVL;
52          npix = 1;
# Line 69 | Line 54 | pass1default()                 /* for single pass */
54   }
55  
56  
57 < pass1scan(scan, y)              /* process first pass scanline */
58 < register COLOR  *scan;
59 < int  y;
57 > extern void
58 > pass1scan(              /* process first pass scanline */
59 >        register COLOR  *scan,
60 >        int  y
61 > )
62   {
76        extern char  *malloc();
63          double  cbrt;
64          register int  x;
65          register HOTPIX  *hp;
66  
67          for (x = 0; x < xres; x++) {
68          
69 <                cbrt = bright(scan[x]);
69 >                cbrt = (*ourbright)(scan[x]);
70  
71                  if (cbrt <= 0)
72                          continue;
# Line 107 | Line 93 | int  y;
93   }
94  
95  
96 < pass2init()                     /* prepare for final pass */
96 > extern void
97 > pass2init(void)                 /* prepare for final pass */
98   {
99          if (!npix) {
100                  fprintf(stderr, "%s: picture too dark or too bright\n",
# Line 118 | Line 105 | pass2init()                    /* prepare for final pass */
105  
106          scalecolor(exposure,  AVGLVL/avgbrt);
107          
108 <        sprdfact = spread / (hotlvl * bright(exposure))
108 >        sprdfact = spread / (hotlvl * (*ourbright)(exposure))
109                          * ((double)xres*xres + (double)yres*yres) / 4.0;
110   }
111  
112  
113 < pass2scan(scan, y)              /* process final pass scanline */
114 < register COLOR  *scan;
115 < int  y;
113 > extern void
114 > pass2scan(              /* process final pass scanline */
115 >        register COLOR  *scan,
116 >        int  y
117 > )
118   {
119          int  xmin, xmax;
120          register int  x;
# Line 157 | Line 146 | int  y;
146   }
147  
148  
149 < starpoint(fcol, x, y, hp)               /* pixel is on the star's point */
150 < COLOR  fcol;
151 < int  x, y;
152 < register HOTPIX  *hp;
149 > static void
150 > starpoint(              /* pixel is on the star's point */
151 >        COLOR  fcol,
152 >        int  x,
153 >        int  y,
154 >        register HOTPIX  *hp
155 > )
156   {
157          COLOR  ctmp;
158          double  d2;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines