| 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, rand_samp); |
| 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, rand_samp); |
| 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); |