exact formula is inside /lib/skybright.cal if this can help you to find the name.
{ RCSid: $Id$ } { Sky brightness function for sunny and cloudy skies.
Additional arguments required for calculation of skybright:
A1 - 1 for CIE clear, 2 for CIE overcast, 3 for uniform, 4 for CIE intermediate A2 - zenith brightness A3 - ground plane brightness A4 - normalization factor based on sun direction A5,A6,A7 - sun direction }
cosgamma = Dx*A5 + Dy*A6 + Dz*A7;
gamma = Acos(cosgamma); { angle from sun to this point in sky }
zt = Acos(A7); { angle from zenith to sun }
eta = Acos(Dz); { angle from zenith to this point in sky }
wmean(a, x, b, y) : (a*x + b*y) / (a + b);
skybr = wmean((Dz+1.01)^10, select(A1, sunnysky, cloudysky, unifsky, intersky), (Dz+1.01)^-10, A3);
sunnysky = A2 * (.91 + 10*exp(-3*gamma) + .45*cosgamma*cosgamma) * if( Dz - .01, 1.0 - exp(-.32/Dz), 1.0) / A4;
cloudysky = A2 * (1 + 2*Dz)/3;
unifsky = A2;
intersky = A2 * ( (1.35*sin(5.631-3.59*eta)+3.12)*sin(4.396-2.6*zt) + 6.37 - eta ) / 2.326 * exp(gamma*-.563*((2.629-eta)*(1.562-zt)+.812)) / A4;
…
CA, DA, DC)Two of those diagonal lengths are obviously redundant but they allow you to simply shift the array to get at different rotational permutations. This makes the search for the nearest mean a bit more straightforward since, in the context of panel clustering, you'd need to consider all rotational permutations of each one.…
Added by David Reeves at 5:26am on November 9, 2014
nt B2[i] so B1[i]<=0 means no new connections allowed for point i ,so point i is deleted from B1, B2 updated accordingly.
Initialization:
B1: max number of connections x number of points
B2: all the points
B3: nothing (well null or something, need to create the branch)
Algo:
Get first point in B2, get his allowed number of connections N in B1, find N closest points in B2, create lines in B3, update B2 accordingly. Erase points with max connections (including the first point)
Next
Stop when no points available
At end of loop, B3 stores the created lines.
…
me in 19 different pipeline components. Marginally better, but I'll still need to do this operation approx. 80 times...gulp.
Here's a wishlist request for David: expose string inputs in the Geometry Pipeline for Layer and Name. If I had that, I could change one string to swap my whole geometry set! (My layers have names like "B1 red rail", "B1 blue rail" etc., then the next time I'll want "B2 red rail", "B2 blue rail" etc.)
BTW, I'm happy to script something in C# if it will help: maybe I could write something like the Geometry Pipeline that takes a string input for layer name? Hmmm...
…