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

Comparing ray/src/px/pcond4.c (file contents):
Revision 3.16 by greg, Sat Feb 22 02:07:27 2003 UTC vs.
Revision 3.20 by greg, Fri Aug 21 05:48:28 2015 UTC

# Line 19 | Line 19 | static float   (*raydir)[3] = NULL;    /* ray direction for
19  
20   #define rdirscan(y)     (raydir+(y)*fvxr)
21  
22 + static void compraydir(void);
23 + #if ADJ_VEIL
24 + static void smoothveil(void);
25 + #endif
26  
27 < compraydir()                            /* compute ray directions */
27 >
28 > static void
29 > compraydir(void)                                /* compute ray directions */
30   {
31          FVECT   rorg, rdir;
32          double  h, v;
33 <        register int    x, y;
33 >        int     x, y;
34  
35          if (raydir != NULL)             /* already done? */
36                  return;
# Line 69 | Line 75 | compraydir()                           /* compute ray directions */
75   }
76  
77  
78 < compveil()                              /* compute veiling image */
78 > void
79 > compveil(void)                          /* compute veiling image */
80   {
81          double  t2, t2sum;
82          COLOR   ctmp, vsum;
83          int     px, py;
84 <        register int    x, y;
84 >        int     x, y;
85  
86          if (veilimg != NULL)            /* already done? */
87                  return;
# Line 130 | Line 137 | compveil()                             /* compute veiling image */
137   * and added to the foveal image, and the mapping has been
138   * determined.
139   */
140 < adjveil()                               /* adjust veil image */
140 > void
141 > adjveil(void)                           /* adjust veil image */
142   {
143          float   *crfptr = crfimg;
144          COLOR   *fovptr = fovimg;
# Line 176 | Line 184 | adjveil()                              /* adjust veil image */
184   }
185  
186  
187 < smoothveil()                            /* smooth veil image */
187 > static void
188 > smoothveil(void)                                /* smooth veil image */
189   {
190          COLOR   *nveilimg;
191          COLOR   *ovptr, *nvptr;
# Line 245 | Line 254 | smoothveil()                           /* smooth veil image */
254   }
255   #endif
256  
257 < addveil(sl, y)                          /* add veil to scanline */
258 < COLOR   *sl;
259 < int     y;
257 > void
258 > addveil(                                /* add veil to scanline */
259 >        COLOR   *sl,
260 >        int     y
261 > )
262   {
263          int     vx, vy;
264          double  dx, dy;
265          double  lv, uv;
266 <        register int    x, i;
266 >        int     x, i;
267  
268          vy = dy = (y+.5)/numscans(&inpres)*fvyr - .5;
269          while (vy >= fvyr-1) vy--;
# Line 287 | Line 298 | typedef struct {
298  
299   SCANBAR *rootbar;               /* root scan bar (lowest resolution) */
300  
301 < float   *inpacuD;               /* input acuity data (cycles/degree) */
301 > float   *inpacuD = NULL;        /* input acuity data (cycles/degree) */
302  
303   #define tsampr(x,y)     inpacuD[(y)*fvxr+(x)]
304  
305 + static COLOR * getascan(SCANBAR *sb, int        y);
306 + static void acusample(COLOR     col, int        x, int  y, double       sr);
307 + static void ascanval(COLOR      col, int        x, int  y, SCANBAR      *sb);
308 + static SCANBAR  *sballoc(int    se, int ns, int sl);
309  
310   double
311 < hacuity(La)                     /* return visual acuity in cycles/degree */
312 < double  La;
311 > hacuity(                        /* return visual acuity in cycles/degree */
312 >        double  La
313 > )
314   {
315                                          /* functional fit */
316          return(17.25*atan(1.4*log10(La) + 0.35) + 25.72);
317   }
318  
319  
320 < COLOR *
321 < getascan(sb, y)                 /* find/read scanline y for scanbar sb */
322 < register SCANBAR        *sb;
323 < int     y;
320 > static COLOR *
321 > getascan(                       /* find/read scanline y for scanbar sb */
322 >        SCANBAR *sb,
323 >        int     y
324 > )
325   {
326 <        register COLOR  *sl0, *sl1, *mysl;
327 <        register int    i;
326 >        COLOR   *sl0, *sl1, *mysl;
327 >        int     i;
328  
329          if (y < sb->nread - sb->nscans)                 /* too far back? */
330                  return(NULL);
# Line 337 | Line 354 | int    y;
354   }
355  
356  
357 < acuscan(scln, y)                /* get acuity-sampled scanline */
358 < COLOR   *scln;
359 < int     y;
357 > void
358 > acuscan(                /* get acuity-sampled scanline */
359 >        COLOR   *scln,
360 >        int     y
361 > )
362   {
363          double  sr;
364          double  dx, dy;
365          int     ix, iy;
366 <        register int    x;
366 >        int     x;
367 >        
368 >        if (inpacuD == NULL)
369 >                return;
370                                          /* compute foveal y position */
371          iy = dy = (y+.5)/numscans(&inpres)*fvyr - .5;
372          while (iy >= fvyr-1) iy--;
# Line 363 | Line 385 | int    y;
385   }
386  
387  
388 < acusample(col, x, y, sr)        /* interpolate sample at (x,y) using rate sr */
389 < COLOR   col;
390 < int     x, y;
391 < double  sr;
388 > static void
389 > acusample(      /* interpolate sample at (x,y) using rate sr */
390 >        COLOR   col,
391 >        int     x,
392 >        int     y,
393 >        double  sr
394 > )
395   {
396          COLOR   c1;
397          double  d;
398 <        register SCANBAR        *sb0;
398 >        SCANBAR *sb0;
399  
400          for (sb0 = rootbar; sb0->sampe != 0 && 1<<sb0[1].sampe > sr; sb0++)
401                  ;
# Line 385 | Line 410 | double sr;
410   }
411  
412  
413 < ascanval(col, x, y, sb)         /* interpolate scanbar at orig. coords (x,y) */
414 < COLOR   col;
415 < int     x, y;
416 < SCANBAR *sb;
413 > static void
414 > ascanval(               /* interpolate scanbar at orig. coords (x,y) */
415 >        COLOR   col,
416 >        int     x,
417 >        int     y,
418 >        SCANBAR *sb
419 > )
420   {
421          COLOR   *sl0, *sl1, c1, c1y;
422          double  dx, dy;
# Line 433 | Line 461 | SCANBAR        *sb;
461   }
462  
463  
464 < SCANBAR *
465 < sballoc(se, ns, sl)             /* allocate scanbar */
466 < int     se;             /* sampling rate exponent */
467 < int     ns;             /* number of scanlines */
468 < int     sl;             /* original scanline length */
464 > static SCANBAR  *
465 > sballoc(                /* allocate scanbar */
466 >        int     se,             /* sampling rate exponent */
467 >        int     ns,             /* number of scanlines */
468 >        int     sl              /* original scanline length */
469 > )
470   {
471          SCANBAR *sbarr;
472 <        register SCANBAR        *sb;
472 >        SCANBAR *sb;
473  
474          sbarr = sb = (SCANBAR *)malloc((se+1)*sizeof(SCANBAR));
475          if (sb == NULL)
# Line 462 | Line 491 | int    sl;             /* original scanline length */
491   }
492  
493  
494 < initacuity()                    /* initialize variable acuity sampling */
494 > void
495 > initacuity(void)                        /* initialize variable acuity sampling */
496   {
497          FVECT   diffx, diffy, cp;
498          double  omega, maxsr;
499 <        register int    x, y, i;
500 <
499 >        int     x, y, i;
500 >        
501          compraydir();                   /* compute ray directions */
502  
503          inpacuD = (float *)malloc(fvxr*fvyr*sizeof(float));

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines