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

Comparing ray/src/rt/source.c (file contents):
Revision 2.16 by greg, Tue Apr 25 19:51:38 1995 UTC vs.
Revision 2.17 by greg, Thu Nov 2 17:37:58 1995 UTC

# Line 1 | Line 1
1 < /* Copyright (c) 1993 Regents of the University of California */
1 > /* Copyright (c) 1995 Regents of the University of California */
2  
3   #ifndef lint
4   static char SCCSid[] = "$SunId$ LBL";
# Line 405 | Line 405 | return(o->otype==MAT_ILLUM|o->otype==MAT_GLOW);}
405   * (Glows with negative radii should NEVER participate in illumination.)
406   */
407  
408 < #define  distglow(m, r)         (m->otype==MAT_GLOW && \
408 > #define  distglow(m, r, d)      (m->otype==MAT_GLOW && \
409                                  m->oargs.farg[3] >= -FTINY && \
410 <                                r->rot > m->oargs.farg[3])
410 >                                d > m->oargs.farg[3])
411  
412   /* badcomponent *
413   *
# Line 420 | Line 420 | return(o->otype==MAT_ILLUM|o->otype==MAT_GLOW);}
420  
421   #define  badcomponent(m, r)     (r->crtype&(AMBIENT|SPECULAR) && \
422                                  !(r->crtype&SHADOW || r->rod < 0.0 || \
423 <                                        distglow(m, r)))
423 >                /* not 100% correct */  distglow(m, r, r->rot)))
424  
425   /* passillum *
426   *
# Line 438 | Line 438 | return(o->otype==MAT_ILLUM|o->otype==MAT_GLOW);}
438   * The -dv flag is normally on for sources to be visible.
439   */
440  
441 < #define  srcignore(m, r)        (!directvis && !(r->crtype&SHADOW) && \
442 <                                !distglow(m, r))
441 > #define  srcignore(m, r)        !(directvis || r->crtype&SHADOW || \
442 >                                distglow(m, r, raydist(r,PRIMARY)))
443  
444  
445   m_light(m, r)                   /* ray hit a light source */
# Line 449 | Line 449 | register RAY  *r;
449                                                  /* check for over-counting */
450          if (badcomponent(m, r))
451                  return(1);
452 <        if (wrongsource(m,r))
452 >        if (wrongsource(m, r))
453                  return(1);
454                                                  /* check for passed illum */
455          if (passillum(m, r)) {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines