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

Comparing ray/src/rt/fprism.c (file contents):
Revision 2.2 by greg, Mon Dec 12 12:22:48 1994 UTC vs.
Revision 2.4 by greg, Sat Feb 22 02:07:28 2003 UTC

# Line 1 | Line 1
1 /* Copyright (c) 1993 Regents of the University of California */
2
1   #ifndef lint
2 < static char SCCSid[] = "$SunId$ LBL";
2 > static const char       RCSid[] = "$Id$";
3   #endif
6
4   /* Ce programme calcule les directions et les energies des rayons lumineux
5     resultant du passage d'un rayon au travers d'un vitrage prismatique
6  
# Line 24 | Line 21 | double x;
21                  return(0.);
22          return(sqrt(x));
23   }
27 #define sqrt(x) Sqrt(x)
24  
25   /* definitions de macros utiles */
26  
# Line 103 | Line 99 | extern long eclock;
99  
100   /* Definition des routines */
101  
102 < #define term(a,b) a/sqrt(a*a+b*b)
102 > #define term(a,b) a/Sqrt(a*a+b*b)
103   static
104   prepare_matrices()
105   {
# Line 209 | Line 205 | FVECT v,v_out;
205   FVECT v_temp;
206   double det;
207  
208 < det = sqrt( (YY(v)*YY(v)+ZZ(v)*ZZ(v))*(YY(v)*YY(v)+ZZ(v)*ZZ(v))+
208 > det = Sqrt( (YY(v)*YY(v)+ZZ(v)*ZZ(v))*(YY(v)*YY(v)+ZZ(v)*ZZ(v))+
209           (XX(v)*XX(v)*YY(v)*YY(v))+(XX(v)*XX(v)*ZZ(v)*ZZ(v)) );
210   XX(v_temp) = (YY(v)*YY(v)+ZZ(v)*ZZ(v))/det;
211   YY(v_temp) = -( XX(v)*YY(v) )/det;
# Line 227 | Line 223 | FVECT v,v_out;
223   FVECT v_temp;
224   double det;
225  
226 < det = sqrt( (ZZ(v)*ZZ(v)+YY(v)*YY(v)) );
226 > det = Sqrt( (ZZ(v)*ZZ(v)+YY(v)*YY(v)) );
227   XX(v_temp) = 0.;
228   YY(v_temp) = -ZZ(v)/det;
229   ZZ(v_temp) = YY(v)/det;
# Line 427 | Line 423 | TRAYON r;
423   {
424   double det;
425  
426 < det = sqrt(X(r)*X(r)+Y(r)*Y(r)+Z(r)*Z(r));
427 < sinus = sqrt(Y(r)*Y(r)+Z(r)*Z(r))/det;
428 < cosinus = sqrt(X(r)*X(r))/det;
426 > det = Sqrt(X(r)*X(r)+Y(r)*Y(r)+Z(r)*Z(r));
427 > sinus = Sqrt(Y(r)*Y(r)+Z(r)*Z(r))/det;
428 > cosinus = Sqrt(X(r)*X(r))/det;
429   if (r.n == 1.) rapport = prism.np * prism.np;
430   else rapport = 1./(prism.np * prism.np);
431   return;
# Line 448 | Line 444 | TRAYON r_incident;
444   X(r_reflechi) = -X(r_incident);
445   Y(r_reflechi) = Y(r_incident);
446   Z(r_reflechi) = Z(r_incident);
447 < if(sinus > sqrt(rapport) || r_incident.dest == tot_ref)
447 > if(sinus > Sqrt(rapport) || r_incident.dest == tot_ref)
448          {
449           r_reflechi.ppar1 = r_incident.ppar1;
450           r_reflechi.pper1 = r_incident.pper1;
# Line 458 | Line 454 | TRAYON r_incident;
454          }
455   else
456          {
457 <         r_reflechi.ppar1 = r_incident.ppar1*(rapport*cosinus-sqrt(rapport-
458 <                 (sinus*sinus)))/(rapport*cosinus+sqrt(rapport-(sinus*sinus)));
459 <         r_reflechi.pper1 = r_incident.pper1*(cosinus-sqrt
460 <                (rapport-(sinus*sinus)))/(cosinus+sqrt(rapport-(sinus*sinus)));
461 <         r_reflechi.ppar2 = r_incident.ppar2*(rapport*cosinus-sqrt(rapport-
462 <                 (sinus*sinus)))/(rapport*cosinus+sqrt(rapport-(sinus*sinus)));
463 <         r_reflechi.pper2 = r_incident.pper2*(cosinus-sqrt
464 <                (rapport-(sinus*sinus)))/(cosinus+sqrt(rapport-(sinus*sinus)));
457 >         r_reflechi.ppar1 = r_incident.ppar1*(rapport*cosinus-Sqrt(rapport-
458 >                 (sinus*sinus)))/(rapport*cosinus+Sqrt(rapport-(sinus*sinus)));
459 >         r_reflechi.pper1 = r_incident.pper1*(cosinus-Sqrt
460 >                (rapport-(sinus*sinus)))/(cosinus+Sqrt(rapport-(sinus*sinus)));
461 >         r_reflechi.ppar2 = r_incident.ppar2*(rapport*cosinus-Sqrt(rapport-
462 >                 (sinus*sinus)))/(rapport*cosinus+Sqrt(rapport-(sinus*sinus)));
463 >         r_reflechi.pper2 = r_incident.pper2*(cosinus-Sqrt
464 >                (rapport-(sinus*sinus)))/(cosinus+Sqrt(rapport-(sinus*sinus)));
465           r_reflechi.e = r_incident.e *(((r_reflechi.ppar1*r_reflechi.ppar1+
466           r_reflechi.pper1*r_reflechi.pper1)/(r_incident.ppar1*r_incident.ppar1+
467           r_incident.pper1*r_incident.pper1))+((r_reflechi.ppar2*r_reflechi.ppar2
# Line 487 | Line 483 | TRAYON r_incident;
483  
484   r_transmis = r_incident;
485   trigo(r_incident);
486 < if (sinus <= sqrt(rapport) && r_incident.dest != tot_ref)
486 > if (sinus <= Sqrt(rapport) && r_incident.dest != tot_ref)
487          {
488           X(r_transmis) = (X(r_incident)/(fabs(X(r_incident))))*
489 <                         (sqrt(1.-(Y(r_incident)*Y(r_incident)+Z(r_incident)*
489 >                         (Sqrt(1.-(Y(r_incident)*Y(r_incident)+Z(r_incident)*
490                                     Z(r_incident))/rapport));
491 <         Y(r_transmis) = Y(r_incident)/sqrt(rapport);
492 <         Z(r_transmis) = Z(r_incident)/sqrt(rapport);
493 <         r_transmis.ppar1 = r_incident.ppar1*2.*sqrt(rapport)*cosinus/
494 <                           (sqrt(rapport-sinus*sinus)+rapport*cosinus);
495 <         r_transmis.pper1 = r_incident.pper1*2.*cosinus/(cosinus+sqrt(rapport
491 >         Y(r_transmis) = Y(r_incident)/Sqrt(rapport);
492 >         Z(r_transmis) = Z(r_incident)/Sqrt(rapport);
493 >         r_transmis.ppar1 = r_incident.ppar1*2.*Sqrt(rapport)*cosinus/
494 >                           (Sqrt(rapport-sinus*sinus)+rapport*cosinus);
495 >         r_transmis.pper1 = r_incident.pper1*2.*cosinus/(cosinus+Sqrt(rapport
496                             - sinus*sinus));
497 <         r_transmis.ppar2 = r_incident.ppar2*2.*sqrt(rapport)*cosinus/
498 <                           (sqrt(rapport-sinus*sinus)+rapport*cosinus);
499 <         r_transmis.pper2 = r_incident.pper2*2.*cosinus/(cosinus+sqrt(rapport
497 >         r_transmis.ppar2 = r_incident.ppar2*2.*Sqrt(rapport)*cosinus/
498 >                           (Sqrt(rapport-sinus*sinus)+rapport*cosinus);
499 >         r_transmis.pper2 = r_incident.pper2*2.*cosinus/(cosinus+Sqrt(rapport
500                             - sinus*sinus));
501 <         r_transmis.e = (r_incident.e/2)*(sqrt(rapport-sinus*sinus)/cosinus)
501 >         r_transmis.e = (r_incident.e/2)*(Sqrt(rapport-sinus*sinus)/cosinus)
502              *(((r_transmis.ppar1*r_transmis.ppar1+r_transmis.pper1*
503                  r_transmis.pper1)
504              /(r_incident.ppar1*r_incident.ppar1+r_incident.pper1*

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines