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"); |
650 |
|
RAY *r |
651 |
|
) |
652 |
|
{ |
653 |
< |
if (r->rot < FHUGE) |
653 |
> |
if (r->rot < FHUGE*.99) |
654 |
|
(*putreal)(r->rop, 3); |
655 |
|
else |
656 |
|
(*putreal)(vdummy, 3); |
662 |
|
RAY *r |
663 |
|
) |
664 |
|
{ |
665 |
< |
if (r->rot < FHUGE) { |
665 |
> |
if (r->rot < FHUGE*.99) { |
666 |
|
if (r->rflips & 1) { /* undo any flippin' flips */ |
667 |
|
FVECT unrm; |
668 |
|
unrm[0] = -r->ron[0]; |
683 |
|
{ |
684 |
|
FVECT pnorm; |
685 |
|
|
686 |
< |
if (r->rot >= FHUGE) { |
686 |
> |
if (r->rot >= FHUGE*.99) { |
687 |
|
(*putreal)(vdummy, 3); |
688 |
|
return; |
689 |
|
} |