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

Comparing ray/src/rt/dielectric.c (file contents):
Revision 2.1 by greg, Tue Nov 12 17:09:55 1991 UTC vs.
Revision 2.7 by greg, Thu Jan 13 09:45:08 1994 UTC

# Line 16 | Line 16 | static char SCCSid[] = "$SunId$ LBL";
16  
17   #ifdef  DISPERSE
18   #include  "source.h"
19 + static  disperse();
20 + static int  lambda();
21   #endif
22  
23   /*
# Line 53 | Line 55 | m_dielectric(m, r)     /* color a ray which hit something
55   OBJREC  *m;
56   register RAY  *r;
57   {
56        double  sqrt(), pow();
58          double  cos1, cos2, nratio;
59          COLOR  mcolor;
60          double  mabsorp;
# Line 66 | Line 67 | register RAY  *r;
67          if (m->oargs.nfargs != (m->otype==MAT_DIELECTRIC ? 5 : 8))
68                  objerror(m, USER, "bad arguments");
69  
69        r->rt = r->rot;                         /* just use ray length */
70
70          raytexture(r, m->omod);                 /* get modifiers */
71  
72          cos1 = raynormal(dnorm, r);             /* cosine of theta1 */
# Line 129 | Line 128 | register RAY  *r;
128                          if (m->otype != MAT_DIELECTRIC
129                                          || r->rod > 0.0
130                                          || r->crtype & SHADOW
131 <                                        || directinvis
131 >                                        || !directvis
132                                          || m->oargs.farg[4] == 0.0
133                                          || !disperse(m, r, p.rdir, trans))
134   #endif
# Line 138 | Line 137 | register RAY  *r;
137                                  multcolor(mcolor, r->pcol);     /* modify */
138                                  scalecolor(p.rcol, trans);
139                                  addcolor(r->rcol, p.rcol);
140 +                                if (nratio >= 1.0-FTINY && nratio <= 1.0+FTINY)
141 +                                        r->rt = r->rot + p.rt;
142                          }
143                  }
144          }
# Line 156 | Line 157 | register RAY  *r;
157          }
158  
159          multcolor(r->rcol, mcolor);             /* multiply by transmittance */
160 +
161 +        return(1);
162   }
163  
164  
# Line 168 | Line 171 | RAY  *r;
171   FVECT  vt;
172   double  tr;
173   {
171        double  sqrt();
174          RAY  sray, *entray;
175          FVECT  v1, v2, n1, n2;
176          FVECT  dv, v2Xdv;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines