117 |
|
{ |
118 |
|
unsigned long vcount = (hresolu > 1) ? (unsigned long)hresolu*vresolu |
119 |
|
: (unsigned long)vresolu; |
120 |
< |
long nextflush = (vresolu > 0) & (hresolu > 1) ? 0 : hresolu; |
120 |
> |
long nextflush = (!vresolu | (hresolu <= 1)) * hresolu; |
121 |
|
int something2flush = 0; |
122 |
|
FILE *fp; |
123 |
|
double d; |
167 |
|
getvec(direc, inform, fp) == 0) { |
168 |
|
|
169 |
|
d = normalize(direc); |
170 |
< |
if (d == 0.0) { /* zero ==> flush */ |
171 |
< |
if ((--nextflush <= 0) | !vcount && something2flush) { |
170 |
> |
if (d == 0.0) { /* flush request? */ |
171 |
> |
if (something2flush) { |
172 |
|
if (ray_pnprocs > 1 && ray_fifo_flush() < 0) |
173 |
|
error(USER, "child(ren) died"); |
174 |
|
bogusray(); |
175 |
|
fflush(stdout); |
176 |
+ |
nextflush = (!vresolu | (hresolu <= 1)) * hresolu; |
177 |
|
something2flush = 0; |
177 |
– |
nextflush = (vresolu > 0) & (hresolu > 1) ? 0 : |
178 |
– |
hresolu; |
178 |
|
} else |
179 |
|
bogusray(); |
180 |
|
} else { /* compute and print */ |
266 |
|
break; |
267 |
|
case 'V': /* contribution */ |
268 |
|
*table++ = oputV; |
270 |
– |
castonly = 0; |
269 |
|
if (ambounce > 0 && (ambacc > FTINY || ambssamp > 0)) |
270 |
|
error(WARNING, |
271 |
|
"-otV accuracy depends on -aa 0 -as 0"); |
663 |
|
) |
664 |
|
{ |
665 |
|
if (r->rot < FHUGE) { |
666 |
< |
rayreorient(r); |
667 |
< |
(*putreal)(r->ron, 3); |
666 |
> |
if (r->rflips & 1) { /* undo any flippin' flips */ |
667 |
> |
FVECT unrm; |
668 |
> |
unrm[0] = -r->ron[0]; |
669 |
> |
unrm[1] = -r->ron[1]; |
670 |
> |
unrm[2] = -r->ron[2]; |
671 |
> |
(*putreal)(unrm, 3); |
672 |
> |
} else |
673 |
> |
(*putreal)(r->ron, 3); |
674 |
|
} else |
675 |
|
(*putreal)(vdummy, 3); |
676 |
|
} |