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

Comparing ray/src/rt/m_brdf.c (file contents):
Revision 2.26 by greg, Sun Sep 26 15:51:15 2010 UTC vs.
Revision 2.28 by greg, Sun Jul 29 21:56:16 2012 UTC

# Line 77 | Line 77 | typedef struct {
77   }  BRDFDAT;             /* BRDF material data */
78  
79  
80 < static srcdirf_t dirbrdf;
81 < static int setbrdfunc(BRDFDAT  *np);
80 > static int setbrdfunc(BRDFDAT *np);
81  
82  
83   static void
# Line 89 | Line 88 | dirbrdf(               /* compute source contribution */
88          double  omega                   /* light source size */
89   )
90   {
91 <        register BRDFDAT *np = nnp;
91 >        BRDFDAT *np = nnp;
92          double  ldot;
93          double  dtmp;
94          COLOR  ctmp;
95          FVECT  ldx;
96          static double  vldx[5], pt[MAXDIM];
97 <        register char   **sa;
98 <        register int    i;
97 >        char    **sa;
98 >        int     i;
99   #define lddx (vldx+1)
100  
101          setcolor(cval, 0.0, 0.0, 0.0);
# Line 197 | Line 196 | dirbrdf(               /* compute source contribution */
196   }
197  
198  
199 < extern int
199 > int
200   m_brdf(                 /* color a ray that hit a BRDTfunc material */
201 <        register OBJREC  *m,
202 <        register RAY  *r
201 >        OBJREC  *m,
202 >        RAY  *r
203   )
204   {
205          int  hitfront = 1;
# Line 213 | Line 212 | m_brdf(                        /* color a ray that hit a BRDTfunc material
212          COLOR  ctmp;
213          FVECT  vtmp;
214          double  d;
215 <        register MFUNC  *mf;
216 <        register int  i;
215 >        MFUNC  *mf;
216 >        int  i;
217                                                  /* check arguments */
218          if ((m->oargs.nsargs < 10) | (m->oargs.nfargs < 9))
219                  objerror(m, USER, "bad # arguments");
# Line 271 | Line 270 | m_brdf(                        /* color a ray that hit a BRDTfunc material
270                  objerror(m, WARNING, "compute error");
271          else if (rayorigin(&sr, TRANS, r, ctmp) == 0) {
272                  if (!(r->crtype & SHADOW) && hastexture) {
273 <                        for (i = 0; i < 3; i++) /* perturb direction */
274 <                                sr.rdir[i] = r->rdir[i] - .75*r->pert[i];
273 >                                                /* perturb direction */
274 >                        VSUM(sr.rdir, r->rdir, r->pert, -.75);
275                          if (normalize(sr.rdir) == 0.0) {
276                                  objerror(m, WARNING, "illegal perturbation");
277                                  VCOPY(sr.rdir, r->rdir);
# Line 299 | Line 298 | m_brdf(                        /* color a ray that hit a BRDTfunc material
298          if ((errno == EDOM) | (errno == ERANGE))
299                  objerror(m, WARNING, "compute error");
300          else if (rayorigin(&sr, REFLECTED, r, ctmp) == 0) {
301 <                for (i = 0; i < 3; i++)
303 <                        sr.rdir[i] = r->rdir[i] + 2.0*nd.pdot*nd.pnorm[i];
301 >                VSUM(sr.rdir, r->rdir, nd.pnorm, 2.*nd.pdot);
302                  checknorm(sr.rdir);
303                  rayvalue(&sr);
304                  multcolor(sr.rcol, sr.rcoef);
# Line 346 | Line 344 | m_brdf(                        /* color a ray that hit a BRDTfunc material
344  
345  
346  
347 < extern int
347 > int
348   m_brdf2(                        /* color a ray that hit a BRDF material */
349 <        register OBJREC  *m,
350 <        register RAY  *r
349 >        OBJREC  *m,
350 >        RAY  *r
351   )
352   {
353          BRDFDAT  nd;
# Line 435 | Line 433 | m_brdf2(                       /* color a ray that hit a BRDF material */
433  
434   static int
435   setbrdfunc(                     /* set up brdf function and variables */
436 <        register BRDFDAT  *np
436 >        BRDFDAT  *np
437   )
438   {
439          FVECT  vec;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines