1 |
|
{ RCSid $Id$ } |
2 |
|
{ |
3 |
< |
Compute interior bin for (full) Klems BSDF basis |
3 |
> |
Compute interior bin for (full) Klems BSDF basis (0-144) |
4 |
|
|
5 |
|
Modified from Tregenza.cal, which is similar but different |
6 |
|
|
17 |
|
kfindrow(r, pol) : if(r-kpola(0)+.5, r, |
18 |
|
if(pol-kpola(r), kfindrow(r+1, pol), r) ); |
19 |
|
|
20 |
< |
kazn(azi,inc) : if(azi-(360-.5*inc), 0, floor((azi+.5*inc)/inc)); |
20 |
> |
kazn(azi,inc) : if((360-.5*inc)-azi, floor((azi+.5*inc)/inc), 0); |
21 |
|
|
22 |
|
kbin2(pol,azi) = select(kfindrow(1, pol), |
23 |
|
kazn(azi,360/knaz(1)), |
35 |
|
Atan2(-Dx*Ux-Dy*Uy-Dz*Uz, |
36 |
|
-Dx*(Ny*Uz-Nz*Uy) - Dy*(Nz*Ux-Nx*Uz) - Dz*(Nx*Uy-Ny*Ux))); |
37 |
|
|
38 |
< |
kbinN = kbin(0,1,0, 0,0,1); { North bins } |
39 |
< |
kbinE = kbin(1,0,0, 0,0,1); { East bins } |
40 |
< |
kbinS = kbin(0,-1,0, 0,0,1); { South bins } |
41 |
< |
kbinW = kbin(-1,0,0, 0,0,1); { West bins } |
38 |
> |
kbinN = kbin(0,-1,0, 0,0,1); { North bins } |
39 |
> |
kbinE = kbin(-1,0,0, 0,0,1); { East bins } |
40 |
> |
kbinS = kbin(0,1,0, 0,0,1); { South bins } |
41 |
> |
kbinW = kbin(1,0,0, 0,0,1); { West bins } |
42 |
|
|
43 |
< |
kbinU = kbin(0,0,1, 0,1,0); { "Up" bins for skylights } |
43 |
> |
kbinD = kbin(0,0,-1, 0,1,0); { Skylight bins } |
44 |
|
|
45 |
< |
Nkbins : kaccum(knaz(0)); { total number of bins } |
45 |
> |
Nkbins : kaccum(knaz(0)); { Number of bins for one elevation } |