| 379 |
|
) |
| 380 |
|
{ |
| 381 |
|
RAY ir; |
| 382 |
< |
COLOR ctmp; |
| 382 |
> |
COLOR rcol, ctmp, csqr; |
| 383 |
|
int i; |
| 384 |
|
|
| 385 |
|
if (n < 0) { /* fetching stragglers */ |
| 407 |
|
} else |
| 408 |
|
ray_trace(&ir); |
| 409 |
|
} |
| 410 |
+ |
scolor_rgb(rcol, ir.rcol); |
| 411 |
|
if (abuffer[n] == ALOWQ && asump != NULL) { |
| 412 |
|
if (sbuffer[n] != 1) |
| 413 |
|
error(CONSISTENCY, "bad code in ray_refine"); |
| 417 |
|
(colval(ctmp,BLU) > 0.01)) { |
| 418 |
|
for (i = 0; i < 3; i++) |
| 419 |
|
asump->diffsum[i] += |
| 420 |
< |
(colval(ir.rcol,i) - colval(cbuffer[n],i)) |
| 420 |
> |
(colval(rcol,i) - colval(cbuffer[n],i)) |
| 421 |
|
/ colval(ctmp,i); |
| 422 |
|
asump->nsamps++; |
| 423 |
|
} |
| 424 |
|
sbuffer[n] = 0; |
| 425 |
|
} |
| 426 |
< |
setcolor(ctmp, |
| 427 |
< |
colval(ir.rcol,RED)*colval(ir.rcol,RED), |
| 427 |
< |
colval(ir.rcol,GRN)*colval(ir.rcol,GRN), |
| 428 |
< |
colval(ir.rcol,BLU)*colval(ir.rcol,BLU)); |
| 426 |
> |
copycolor(csqr, rcol); |
| 427 |
> |
multcolor(csqr, rcol); |
| 428 |
|
if (!sbuffer[n]) { /* first sample */ |
| 429 |
< |
copycolor(cbuffer[n], ir.rcol); |
| 430 |
< |
copycolor(val2map[n], ctmp); |
| 429 |
> |
copycolor(cbuffer[n], rcol); |
| 430 |
> |
copycolor(val2map[n], csqr); |
| 431 |
|
abuffer[n] = AHIGHQ; |
| 432 |
|
sbuffer[n] = 1; |
| 433 |
|
} else { /* else sum in sample */ |
| 434 |
< |
addcolor(cbuffer[n], ir.rcol); |
| 435 |
< |
addcolor(val2map[n], ctmp); |
| 434 |
> |
addcolor(cbuffer[n], rcol); |
| 435 |
> |
addcolor(val2map[n], csqr); |
| 436 |
|
sbuffer[n]++; |
| 437 |
|
} |
| 438 |
|
return(n); |