| 1 |
– |
/* Copyright (c) 1997 Regents of the University of California */ |
| 2 |
– |
|
| 1 |
|
#ifndef lint |
| 2 |
< |
static char SCCSid[] = "$SunId$ LBL"; |
| 2 |
> |
static const char RCSid[] = "$Id$"; |
| 3 |
|
#endif |
| 6 |
– |
|
| 4 |
|
/* |
| 5 |
|
* Context handlers |
| 6 |
|
*/ |
| 7 |
|
|
| 8 |
|
#include <stdio.h> |
| 9 |
|
#include <math.h> |
| 10 |
+ |
#include <stdlib.h> |
| 11 |
|
#include <string.h> |
| 12 |
|
#include "parser.h" |
| 13 |
|
#include "lookup.h" |
| 152 |
|
c_ccolor->cx = atof(av[1]); |
| 153 |
|
c_ccolor->cy = atof(av[2]); |
| 154 |
|
c_ccolor->flags = C_CDXY|C_CSXY; |
| 155 |
< |
if (c_ccolor->cx < 0. | c_ccolor->cy < 0. | |
| 156 |
< |
c_ccolor->cx + c_ccolor->cy > 1.) |
| 155 |
> |
if ((c_ccolor->cx < 0.) | (c_ccolor->cy < 0.) | |
| 156 |
> |
(c_ccolor->cx + c_ccolor->cy > 1.)) |
| 157 |
|
return(MG_EILL); |
| 158 |
|
c_ccolor->clock++; |
| 159 |
|
return(MG_OK); |
| 278 |
|
if (!isflt(av[1])) |
| 279 |
|
return(MG_ETYPE); |
| 280 |
|
c_cmaterial->rd = atof(av[1]); |
| 281 |
< |
if (c_cmaterial->rd < 0. | c_cmaterial->rd > 1.) |
| 281 |
> |
if ((c_cmaterial->rd < 0.) | (c_cmaterial->rd > 1.)) |
| 282 |
|
return(MG_EILL); |
| 283 |
|
c_cmaterial->rd_c = *c_ccolor; |
| 284 |
|
c_cmaterial->clock++; |
| 300 |
|
if (!isflt(av[1])) |
| 301 |
|
return(MG_ETYPE); |
| 302 |
|
c_cmaterial->td = atof(av[1]); |
| 303 |
< |
if (c_cmaterial->td < 0. | c_cmaterial->td > 1.) |
| 303 |
> |
if ((c_cmaterial->td < 0.) | (c_cmaterial->td > 1.)) |
| 304 |
|
return(MG_EILL); |
| 305 |
|
c_cmaterial->td_c = *c_ccolor; |
| 306 |
|
c_cmaterial->clock++; |
| 312 |
|
return(MG_ETYPE); |
| 313 |
|
c_cmaterial->rs = atof(av[1]); |
| 314 |
|
c_cmaterial->rs_a = atof(av[2]); |
| 315 |
< |
if (c_cmaterial->rs < 0. | c_cmaterial->rs > 1. | |
| 316 |
< |
c_cmaterial->rs_a < 0.) |
| 315 |
> |
if ((c_cmaterial->rs < 0.) | (c_cmaterial->rs > 1.) | |
| 316 |
> |
(c_cmaterial->rs_a < 0.)) |
| 317 |
|
return(MG_EILL); |
| 318 |
|
c_cmaterial->rs_c = *c_ccolor; |
| 319 |
|
c_cmaterial->clock++; |
| 325 |
|
return(MG_ETYPE); |
| 326 |
|
c_cmaterial->ts = atof(av[1]); |
| 327 |
|
c_cmaterial->ts_a = atof(av[2]); |
| 328 |
< |
if (c_cmaterial->ts < 0. | c_cmaterial->ts > 1. | |
| 329 |
< |
c_cmaterial->ts_a < 0.) |
| 328 |
> |
if ((c_cmaterial->ts < 0.) | (c_cmaterial->ts > 1.) | |
| 329 |
> |
(c_cmaterial->ts_a < 0.)) |
| 330 |
|
return(MG_EILL); |
| 331 |
|
c_cmaterial->ts_c = *c_ccolor; |
| 332 |
|
c_cmaterial->clock++; |
| 573 |
|
double wl0, wlstep; |
| 574 |
|
double boxpos, boxstep; |
| 575 |
|
/* check bounds */ |
| 576 |
< |
if (wlmax <= C_CMINWL | wlmax <= wlmin | wlmin >= C_CMAXWL) |
| 576 |
> |
if ((wlmax <= C_CMINWL) | (wlmax <= wlmin) | (wlmin >= C_CMAXWL)) |
| 577 |
|
return(MG_EILL); |
| 578 |
|
wlstep = (wlmax - wlmin)/(ac-1); |
| 579 |
|
while (wlmin < C_CMINWL) { |
| 618 |
|
wl0 = wlmin; |
| 619 |
|
pos = 0; |
| 620 |
|
for (i = 0, wl = C_CMINWL; i < C_CNSS; i++, wl += C_CWLI) |
| 621 |
< |
if (wl < wlmin | wl > wlmax) |
| 621 |
> |
if ((wl < wlmin) | (wl > wlmax)) |
| 622 |
|
clr->ssamp[i] = 0; |
| 623 |
|
else { |
| 624 |
|
while (wl0 + wlstep < wl+FTINY) { |
| 625 |
|
wl0 += wlstep; |
| 626 |
|
pos++; |
| 627 |
|
} |
| 628 |
< |
if (wl+FTINY >= wl0 & wl-FTINY <= wl0) |
| 628 |
> |
if ((wl+FTINY >= wl0) & (wl-FTINY <= wl0)) |
| 629 |
|
clr->ssamp[i] = scale*va[pos] + .5; |
| 630 |
|
else /* interpolate if necessary */ |
| 631 |
|
clr->ssamp[i] = .5 + scale / wlstep * |