| 139 |
|
} |
| 140 |
|
|
| 141 |
|
|
| 142 |
< |
float * /* keep consistent with COLOR typedef */ |
| 142 |
> |
COLORV * |
| 143 |
|
greyof( /* convert color to greyscale */ |
| 144 |
|
COLOR col |
| 145 |
|
) |
| 224 |
|
} else if (ambounce == 0) |
| 225 |
|
flushintvl = ray_pnprocs*WFLUSH; |
| 226 |
|
else if (niflush < WFLUSH) |
| 227 |
< |
flushintvl = ray_pnprocs*niflush/(ambounce+1); |
| 227 |
> |
flushintvl = ray_pnprocs*niflush/(ambounce*(ambounce>0)+1); |
| 228 |
|
else |
| 229 |
< |
flushintvl = ray_pnprocs*WFLUSH/(ambounce+1); |
| 229 |
> |
flushintvl = ray_pnprocs*WFLUSH/(ambounce*(ambounce>0)+1); |
| 230 |
|
if (lastflush > counter) |
| 231 |
|
lastflush = 0; /* counter wrapped */ |
| 232 |
|
|
| 517 |
|
) |
| 518 |
|
{ |
| 519 |
|
double d; |
| 520 |
– |
FVECT v1; |
| 520 |
|
VIEW nv = ourview; |
| 521 |
|
int i; |
| 522 |
|
|
| 523 |
|
spinvector(nv.vdir, ourview.vdir, ourview.vup, angle*(PI/180.)); |
| 524 |
< |
if (elev != 0.0) { |
| 525 |
< |
fcross(v1, ourview.vup, nv.vdir); |
| 526 |
< |
normalize(v1); |
| 528 |
< |
spinvector(nv.vdir, nv.vdir, v1, elev*(PI/180.)); |
| 529 |
< |
} |
| 524 |
> |
if (elev != 0.0) |
| 525 |
> |
geodesic(nv.vdir, nv.vdir, nv.vup, elev*(-PI/180.), GEOD_RAD); |
| 526 |
> |
|
| 527 |
|
if (nv.type == VT_PAR) { |
| 528 |
|
nv.horiz /= mag; |
| 529 |
|
nv.vert /= mag; |