76 |
|
double mult; |
77 |
|
int i; |
78 |
|
|
79 |
< |
src->ss[SV][0] = src->ss[SV][1] = src->ss[SV][2] = 0.0; |
79 |
> |
getperpendicular(src->ss[SU], src->snorm); |
80 |
> |
mult = .5 * sqrt( src->ss2 ); |
81 |
|
for (i = 0; i < 3; i++) |
81 |
– |
if (src->snorm[i] < 0.6 && src->snorm[i] > -0.6) |
82 |
– |
break; |
83 |
– |
src->ss[SV][i] = 1.0; |
84 |
– |
fcross(src->ss[SU], src->ss[SV], src->snorm); |
85 |
– |
mult = .5 * sqrt( src->ss2 / DOT(src->ss[SU],src->ss[SU]) ); |
86 |
– |
for (i = 0; i < 3; i++) |
82 |
|
src->ss[SU][i] *= mult; |
83 |
|
fcross(src->ss[SV], src->snorm, src->ss[SU]); |
84 |
|
} |
234 |
|
/* set sampling vectors */ |
235 |
|
for (i = 0; i < 3; i++) |
236 |
|
src->ss[SU][i] = .5 * co->al * co->ad[i]; |
237 |
< |
src->ss[SV][0] = src->ss[SV][1] = src->ss[SV][2] = 0.0; |
243 |
< |
for (i = 0; i < 3; i++) |
244 |
< |
if (co->ad[i] < 0.6 && co->ad[i] > -0.6) |
245 |
< |
break; |
246 |
< |
src->ss[SV][i] = 1.0; |
247 |
< |
fcross(src->ss[SW], src->ss[SV], co->ad); |
248 |
< |
normalize(src->ss[SW]); |
237 |
> |
getperpendicular(src->ss[SW], co->ad); |
238 |
|
for (i = 0; i < 3; i++) |
239 |
|
src->ss[SW][i] *= .8559 * CO_R0(co); |
240 |
|
fcross(src->ss[SV], src->ss[SW], co->ad); |