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.68 by greg, Mon Jun 11 15:10:49 2018 UTC vs.
Revision 2.71 by greg, Thu Mar 12 17:19:18 2020 UTC

# Line 9 | Line 9 | static const char RCSid[] = "$Id$";
9  
10   #include  "ray.h"
11   #include  "otypes.h"
12 + #include  "otspecial.h"
13   #include  "rtotypes.h"
14   #include  "source.h"
15   #include  "random.h"
# Line 42 | Line 43 | static int  maxcntr = 0;               /* size of contribution arra
43   static int cntcmp(const void *p1, const void *p2);
44  
45  
45 OBJREC *                        /* find an object's actual material */
46 findmaterial(OBJREC *o)
47 {
48        while (!ismaterial(o->otype)) {
49                if (o->otype == MOD_ALIAS && o->oargs.nsargs) {
50                        OBJECT  aobj;
51                        OBJREC  *ao;
52                        aobj = lastmod(objndx(o), o->oargs.sarg[0]);
53                        if (aobj < 0)
54                                objerror(o, USER, "bad reference");
55                        ao = objptr(aobj);
56                        if (ismaterial(ao->otype))
57                                return(ao);
58                        if (ao->otype == MOD_ALIAS) {
59                                o = ao;
60                                continue;
61                        }
62                }
63                if (o->omod == OVOID)
64                        return(NULL);
65                o = objptr(o->omod);
66        }
67        return(o);              /* mixtures will return NULL */
68 }
69
70
46   void
47   marksources(void)                       /* find and mark source objects */
48   {
# Line 546 | Line 521 | srcscatter(                    /* compute source scattering into ray */
521          COLOR  cvext;
522          int  i, j;
523  
524 <        if (r->rot >= FHUGE || r->gecc >= 1.-FTINY)
524 >        if (r->rot >= FHUGE*.99 || r->gecc >= 1.-FTINY)
525                  return;         /* this can never work */
526          /* PMAP: do unconditional inscattering for volume photons */
527          if (!volumePhotonMapping && (r->slights == NULL || r->slights[0] == 0))

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines