105 |
|
SCOLOR scval; |
106 |
|
double wl, wlmin, wlmax, wlstep; |
107 |
|
int ns, i; |
108 |
– |
MFUNC *mf; |
108 |
|
|
109 |
|
if ((m->oargs.nsargs < 2) | (m->oargs.nfargs < 2)) |
110 |
|
objerror(m, USER, "bad # arguments"); |
122 |
|
return(0); |
123 |
|
} |
124 |
|
wlstep = (wlmax - wlmin)/(double)MAXCSAMP; |
125 |
< |
mf = getfunc(m, 1, 0, 0); |
125 |
> |
getfunc(m, 1, 0, 0); |
126 |
|
setfunc(m, r); |
127 |
|
errno = 0; |
128 |
|
ns = (wlmax - wlmin)/wlstep + .1; |
129 |
|
wl = wlmax - .5*wlstep; |
130 |
|
for (i = ns; i-- > 0; wl -= wlstep) { |
131 |
< |
double ws = wl + 0.9*(1.-frandom())*wlstep; |
131 |
> |
double ws = wl + 0.9*(.5-frandom())*wlstep; |
132 |
|
scsamp[i] = funvalue(m->oargs.sarg[0], 1, &ws); |
133 |
|
if ((errno == EDOM) | (errno == ERANGE)) { |
134 |
|
objerror(m, WARNING, "compute error"); |
135 |
|
return(0); |
136 |
|
} |
137 |
|
} |
138 |
< |
convertscolor(scval, NCSAMP, WLPART[0], WLPART[3], |
140 |
< |
scsamp, ns, wlmin, wlmax); |
138 |
> |
convertscolorcol(scval, scsamp, ns, wlmin, wlmax); |
139 |
|
smultscolor(r->pcol, scval); |
140 |
|
return(0); |
141 |
|
} |