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

Comparing ray/src/rt/srcsupp.c (file contents):
Revision 2.5 by greg, Fri Aug 28 14:07:45 1992 UTC vs.
Revision 2.6 by greg, Fri Aug 28 15:10:47 1992 UTC

# Line 496 | Line 496 | double  r1s, r2s;              /* radii squared */
496                  cc[i] = c1[i] + l*disp[i];
497          return(a2);
498   }
499
500
501 sourcehit(r)                    /* check to see if ray hit distant source */
502 register RAY  *r;
503 {
504        int  first, last;
505        register int  i;
506
507        if (r->rsrc >= 0) {             /* check only one if aimed */
508                first = last = r->rsrc;
509        } else {                        /* otherwise check all */
510                first = 0; last = nsources-1;
511        }
512        for (i = first; i <= last; i++)
513                if ((source[i].sflags & (SDISTANT|SVIRTUAL)) == SDISTANT)
514                        /*
515                         * Check to see if ray is within
516                         * solid angle of source.
517                         */
518                        if (2.0*PI * (1.0 - DOT(source[i].sloc,r->rdir))
519                                        <= source[i].ss2) {
520                                r->ro = source[i].so;
521                                if (!(source[i].sflags & SSKIP))
522                                        break;
523                        }
524
525        if (r->ro != NULL) {
526                for (i = 0; i < 3; i++)
527                        r->ron[i] = -r->rdir[i];
528                r->rod = 1.0;
529                r->rox = NULL;
530                return(1);
531        }
532        return(0);
533 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines