22 |
|
int siz |
23 |
|
) |
24 |
|
{ |
25 |
< |
if (siz == 0) { |
25 |
> |
if (siz <= 0) { |
26 |
|
if (distsiz > 0) |
27 |
|
free((void *)distarr); |
28 |
|
distarr = NULL; |
46 |
|
{ |
47 |
|
COLORV *colp; |
48 |
|
|
49 |
< |
if (rv == 0) |
49 |
> |
if (rv == 0) /* no result ready */ |
50 |
|
return(0); |
51 |
|
if (rv < 0) |
52 |
|
error(USER, "ray tracing process died"); |
127 |
|
} |
128 |
|
|
129 |
|
|
130 |
< |
static void |
130 |
> |
void |
131 |
|
flatdir( /* compute uniform hemispherical direction */ |
132 |
< |
register FVECT dv, |
132 |
> |
FVECT dv, |
133 |
|
double alt, |
134 |
|
double azi |
135 |
|
) |
232 |
|
nmisses = 0; |
233 |
|
for (dim[1] = 0; dim[1] < n; dim[1]++) |
234 |
|
for (i = 0; i < il->nsamps; i++) { |
235 |
< |
/* random direction */ |
235 |
> |
/* randomize direction */ |
236 |
|
h = ilhash(dim, 2) + i; |
237 |
|
if (il->sd != NULL) { |
238 |
|
r_BSDF_incvec(dir, il->sd, dim[1], urand(h), xfm); |
246 |
|
dir[j] = -dn[0]*u[j] - dn[1]*v[j] - |
247 |
|
dn[2]*fa->norm[j]; |
248 |
|
} |
249 |
< |
/* random location */ |
249 |
> |
/* randomize location */ |
250 |
|
do { |
251 |
|
multisamp(sp, 2, urand(h+4862+nmisses)); |
252 |
|
r1 = ur[0] + (ur[1]-ur[0]) * sp[0]; |
403 |
|
for (i = 0; i < il->nsamps; i++) { |
404 |
|
/* next sample point */ |
405 |
|
h = ilhash(dim,2) + i; |
406 |
< |
/* random direction */ |
406 |
> |
/* randomize direction */ |
407 |
|
if (il->sd != NULL) { |
408 |
|
r_BSDF_incvec(dir, il->sd, dim[1], urand(h), xfm); |
409 |
|
} else { |
413 |
|
r2 = (dim[1] - alti*nazi + sp[1] - .5)/nazi; |
414 |
|
flatdir(dn, r1, r2); |
415 |
|
for (j = 0; j < 3; j++) |
416 |
< |
dir[j] = -dn[0]*u[j] - dn[1]*v[j] - dn[2]*co->ad[j]; |
416 |
> |
dir[j] = -dn[0]*u[j] - dn[1]*v[j] - dn[2]*co->ad[j]; |
417 |
|
} |
418 |
< |
/* random location */ |
418 |
> |
/* randomize location */ |
419 |
|
multisamp(sp, 2, urand(h+8371)); |
420 |
|
r3 = sqrt(CO_R0(co)*CO_R0(co) + |
421 |
|
sp[0]*(CO_R1(co)*CO_R1(co) - CO_R0(co)*CO_R0(co))); |