public virtual TColor Result(TVec3 r, TVec3 n, TColor diffuse)
{
var c = Ambient;
foreach (var source in ParallelBeams)
{
double num1 = n * source.O;
if (num1 >= 0.0)
{
double num2 = num1 * num1 / (n * n * source.O * source.O);
c += num2 * source.C;
}
}
foreach (var source in NearSources)
{
var tvec3 = source.O - r;
double num1 = n * tvec3;
double num2 = tvec3 * tvec3;
if (num1 >= 0.0)
{
double num3 = num1 * num1 / (n * n * num2 * num2);
c += num3 * source.C;
}
}
return diffuse * c;
}