146 |
|
case 'f': putreal = putf; break; |
147 |
|
case 'd': putreal = putd; break; |
148 |
|
case 'c': |
149 |
< |
if (outvals[0] && (outvals[1] || !strchr("vVWrx", outvals[0]))) |
150 |
< |
error(USER, "color format only with one of 'vVWrx'"); |
149 |
> |
if (outvals[0] && (outvals[1] || !strchr("vrx", outvals[0]))) |
150 |
> |
error(USER, "color format only with -ov, -or, -ox"); |
151 |
|
putreal = putrgbe; break; |
152 |
|
default: |
153 |
|
error(CONSISTENCY, "botched output format"); |
316 |
|
break; |
317 |
|
} |
318 |
|
*table = NULL; |
319 |
< |
if (do_irrad | imm_irrad) /* compatibile? */ |
320 |
< |
for (table = ray_out; *table != NULL; table++) |
321 |
< |
if ((*table == oputr) | (*table == oputR) | |
322 |
< |
(*table == oputx) | (*table == oputX)) { |
323 |
< |
error(WARNING, "-orRxX options incompatible with -I+ and -i+"); |
324 |
< |
break; |
325 |
< |
} |
319 |
> |
/* compatibility */ |
320 |
> |
for (table = ray_out; *table != NULL; table++) { |
321 |
> |
if ((*table == oputV) | (*table == oputW)) |
322 |
> |
error(WARNING, "-oVW options require trace mode"); |
323 |
> |
if ((do_irrad | imm_irrad) && |
324 |
> |
(*table == oputr) | (*table == oputR) | |
325 |
> |
(*table == oputx) | (*table == oputX)) |
326 |
> |
error(WARNING, "-orRxX options incompatible with -I+ and -i+"); |
327 |
> |
} |
328 |
|
} |
329 |
|
|
330 |
|
|
664 |
|
RAY *r |
665 |
|
) |
666 |
|
{ |
667 |
< |
if (r->rot < FHUGE) |
668 |
< |
(*putreal)(r->ron, 3); |
669 |
< |
else |
667 |
> |
if (r->rot < FHUGE) { |
668 |
> |
if (r->rflips & 1) { /* undo any flippin' flips */ |
669 |
> |
FVECT unrm; |
670 |
> |
unrm[0] = -r->ron[0]; |
671 |
> |
unrm[1] = -r->ron[1]; |
672 |
> |
unrm[2] = -r->ron[2]; |
673 |
> |
(*putreal)(unrm, 3); |
674 |
> |
} else |
675 |
> |
(*putreal)(r->ron, 3); |
676 |
> |
} else |
677 |
|
(*putreal)(vdummy, 3); |
678 |
|
} |
679 |
|
|