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); |