ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/test/renders/diskcoords.cal
Revision: 1.3
Committed: Mon Dec 3 19:49:11 2018 UTC (6 years, 5 months ago) by greg
Branch: MAIN
CVS Tags: rad5R4, rad5R3, HEAD
Changes since 1.2: +1 -3 lines
Log Message:
Added README file with minor corrections to others

File Contents

# User Rev Content
1 greg 1.3 { RCSid $Id: diskcoords.cal,v 1.2 2018/12/01 02:06:05 greg Exp $ }
2 greg 1.1 {
3     Shirley-Chiu coordinate calculation for BRDF data types (plasdata, metdata)
4     }
5     { Compute square position from disk coordinates }
6     norm_radians(p) : if(-p - PI/4, p + 2*PI, p);
7     idr(idx,idy) = sqrt(idx*idx + idy*idy);
8     idp(idx,idy) = norm_radians(atan2(idy, idx));
9    
10     idrgn(idp) = floor((idp + PI/4)/(PI/2)) + 1;
11    
12     square_a(idr,idp) = select(idrgn(idp),
13     idr,
14     (PI/2 - idp)*idr/(PI/4),
15     -idr,
16     (idp - 3*PI/2)*idr/(PI/4));
17    
18     square_b(idr,idp) = select(idrgn(idp),
19     idp*idr/(PI/4),
20     idr,
21     (PI - idp)*idr/(PI/4),
22     -idr);
23    
24     square_x(idx,idy) = (square_a(idr(idx,idy),idp(idx,idy)) + 1)/2;
25     square_y(idx,idy) = (square_b(idr(idx,idy),idp(idx,idy)) + 1)/2;
26    
27 greg 1.2 inc_sqx = square_x(-Idx,-Idy); { Negative because of Klems reversal }
28     inc_sqy = square_y(-Idx,-Idy);
29 greg 1.1
30     sqx_in(sx,sy,sz) = inc_sqx; { Only a function of incident ray direction }
31     sqy_in(sx,sy,sz) = inc_sqy;
32    
33 greg 1.2 sqx_out(sx,sy,sz) = square_x(Ldx(sx,sy,sz),Ldy(sx,sy,sz));
34     sqy_out(sx,sy,sz) = square_y(Ldx(sx,sy,sz),Ldy(sx,sy,sz));