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

Comparing ray/src/common/disk2square.c (file contents):
Revision 3.2 by greg, Fri Feb 18 18:41:04 2011 UTC vs.
Revision 3.5 by greg, Wed Dec 15 01:38:50 2021 UTC

# Line 11 | Line 11 | static const char RCSid[] = "$Id$";
11   * Modified interface slightly (G. Ward)
12   */
13  
14 + #define _USE_MATH_DEFINES
15   #include <math.h>
16  
17   /*
# Line 39 | Line 40 | change log:
40  
41   /* Map a [0,1]^2 square to a unit radius disk */
42   void
43 < SDsquare2disk(double ds[2], double seedx, double seedy)
43 > square2disk(RREAL ds[2], double seedx, double seedy)
44   {
45  
46     double phi, r;
# Line 69 | Line 70 | SDsquare2disk(double ds[2], double seedx, double seedy
70                  phi = 0.;
71         }
72     }
73 <
73 >   r *= 0.9999999999999;        /* prophylactic against MS sin()/cos() impl. */
74     ds[0] = r * cos(phi);
75     ds[1] = r * sin(phi);
76  
# Line 77 | Line 78 | SDsquare2disk(double ds[2], double seedx, double seedy
78  
79   /* Map point on unit disk to a unit square in [0,1]^2 range */
80   void
81 < SDdisk2square(double sq[2], double diskx, double disky)
81 > disk2square(RREAL sq[2], double diskx, double disky)
82   {
83      double r = sqrt( diskx*diskx + disky*disky );
84      double phi = atan2( disky, diskx );
# Line 101 | Line 102 | SDdisk2square(double sq[2], double diskx, double disky
102          a = -(phi - 3*M_PI/2) * b / (M_PI/4);
103      }
104  
105 <    sq[0] = (a + 1) * 0.5;
106 <    sq[1] = (b + 1) * 0.5;
105 >    sq[0] = a*(0.5/0.9999999999999) + 0.5;
106 >    sq[1] = b*(0.5/0.9999999999999) + 0.5;
107   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines