87 |
|
static void tabin(RAY *r); |
88 |
|
static void ourtrace(RAY *r); |
89 |
|
|
90 |
< |
static void putscolor(const COLORV *scol); |
90 |
> |
static void putscolor(COLORV *scol); |
91 |
|
|
92 |
|
static oputf_t *ray_out[32], *every_out[32]; |
93 |
|
static putf_t *putreal; |
253 |
|
case 'c': |
254 |
|
if (outvals[1] || !strchr("vrx", outvals[0])) |
255 |
|
error(USER, "color format only with -ov, -or, -ox"); |
256 |
+ |
if (nco < 3) |
257 |
+ |
error(USER, "color format incompatible with -pY, -pS, -pM"); |
258 |
|
break; |
259 |
|
default: |
260 |
|
error(CONSISTENCY, "botched output format"); |
684 |
|
RAY *r |
685 |
|
) |
686 |
|
{ |
687 |
< |
RREAL cval[3]; |
686 |
< |
|
687 |
< |
cval[0] = colval(r->mcol,RED); |
688 |
< |
cval[1] = colval(r->mcol,GRN); |
689 |
< |
cval[2] = colval(r->mcol,BLU); |
690 |
< |
(*putreal)(cval, 3); |
687 |
> |
putscolor(r->mcol); |
688 |
|
} |
689 |
|
|
690 |
|
|
921 |
|
putd(RREAL *v, int n) /* output binary double(s) */ |
922 |
|
{ |
923 |
|
#ifdef SMLFLT |
924 |
< |
double da[3]; |
924 |
> |
double da[MAXCSAMP]; |
925 |
|
int i; |
926 |
|
|
927 |
< |
if (n > 3) |
927 |
> |
if (n > MAXCSAMP) |
928 |
|
error(INTERNAL, "code error in putd()"); |
929 |
|
for (i = n; i--; ) |
930 |
|
da[i] = v[i]; |
939 |
|
putf(RREAL *v, int n) /* output binary float(s) */ |
940 |
|
{ |
941 |
|
#ifndef SMLFLT |
942 |
< |
float fa[3]; |
942 |
> |
float fa[MAXCSAMP]; |
943 |
|
int i; |
944 |
|
|
945 |
< |
if (n > 3) |
945 |
> |
if (n > MAXCSAMP) |
946 |
|
error(INTERNAL, "code error in putf()"); |
947 |
|
for (i = n; i--; ) |
948 |
|
fa[i] = v[i]; |
954 |
|
|
955 |
|
|
956 |
|
static void |
957 |
< |
putscolor(const COLORV *scol) /* output (spectral) color */ |
957 |
> |
putscolor(COLORV *scol) /* output (spectral) color */ |
958 |
|
{ |
959 |
|
static COLORMAT xyz2myrgbmat; |
960 |
|
SCOLOR my_scol; |