| 83 |
|
c_ccolor = (C_COLOR *)lp->data; |
| 84 |
|
if (ac == 3) { /* use default template */ |
| 85 |
|
*c_ccolor = c_dfcolor; |
| 86 |
+ |
c_ccolor->name = lp->key; |
| 87 |
|
return(MG_OK); |
| 88 |
|
} |
| 89 |
|
lp = lu_find(&clr_tab, av[3]); /* lookup template */ |
| 92 |
|
if (lp->data == NULL) |
| 93 |
|
return(MG_EUNDEF); |
| 94 |
|
*c_ccolor = *(C_COLOR *)lp->data; |
| 95 |
+ |
c_ccolor->name = lp->key; |
| 96 |
+ |
c_ccolor->clock = 1; |
| 97 |
|
if (ac > 4) |
| 98 |
|
return(MG_EARGC); |
| 99 |
|
return(MG_OK); |
| 108 |
|
if (c_ccolor->cx < 0. | c_ccolor->cy < 0. | |
| 109 |
|
c_ccolor->cx + c_ccolor->cy > 1.) |
| 110 |
|
return(MG_EILL); |
| 111 |
+ |
c_ccolor->clock++; |
| 112 |
|
return(MG_OK); |
| 113 |
|
case MG_E_CSPEC: /* assign spectral values */ |
| 114 |
|
if (ac < 5) |
| 234 |
|
if (c_cmaterial->td < 0. | c_cmaterial->td > 1.) |
| 235 |
|
return(MG_EILL); |
| 236 |
|
c_cmaterial->td_c = *c_ccolor; |
| 237 |
+ |
c_cmaterial->clock++; |
| 238 |
|
return(MG_OK); |
| 239 |
|
case MG_E_RS: /* set specular reflectance */ |
| 240 |
|
if (ac != 3) |
| 306 |
|
c_cvertex = (C_VERTEX *)lp->data; |
| 307 |
|
if (ac == 3) { /* use default template */ |
| 308 |
|
*c_cvertex = c_dfvertex; |
| 309 |
+ |
c_cvertex->name = lp->key |
| 310 |
|
return(MG_OK); |
| 311 |
|
} |
| 312 |
|
lp = lu_find(&vtx_tab, av[3]); /* lookup template */ |
| 315 |
|
if (lp->data == NULL) |
| 316 |
|
return(MG_EUNDEF); |
| 317 |
|
*c_cvertex = *(C_VERTEX *)lp->data; |
| 318 |
+ |
c_cvertex->name = lp->key |
| 319 |
+ |
c_cvertex->clock = 1; |
| 320 |
|
if (ac > 4) |
| 321 |
|
return(MG_EARGC); |
| 322 |
|
return(MG_OK); |
| 328 |
|
c_cvertex->p[0] = atof(av[1]); |
| 329 |
|
c_cvertex->p[1] = atof(av[2]); |
| 330 |
|
c_cvertex->p[2] = atof(av[3]); |
| 331 |
+ |
c_cvertex->clock++; |
| 332 |
|
return(MG_OK); |
| 333 |
|
case MG_E_NORMAL: /* set normal */ |
| 334 |
|
if (ac != 4) |
| 339 |
|
c_cvertex->n[1] = atof(av[2]); |
| 340 |
|
c_cvertex->n[2] = atof(av[3]); |
| 341 |
|
(void)normalize(c_cvertex->n); |
| 342 |
+ |
c_cvertex->clock++; |
| 343 |
|
return(MG_OK); |
| 344 |
|
} |
| 345 |
|
return(MG_EUNK); |
| 389 |
|
c_isgrey(clr) /* check if color is grey */ |
| 390 |
|
register C_COLOR *clr; |
| 391 |
|
{ |
| 392 |
< |
if (!clr->flags) |
| 392 |
> |
if (!(clr->flags & (C_CSXY|C_CSSPEC))) |
| 393 |
|
return(1); /* no settings == grey */ |
| 394 |
|
c_ccvt(clr, C_CSXY); |
| 395 |
|
return(clr->cx >= .323 && clr->cx <= .343 && |
| 407 |
|
|
| 408 |
|
if (clr->flags & fl) /* already done */ |
| 409 |
|
return; |
| 410 |
< |
if (!(clr->flags & (C_CSXY|C_CSSPEC))) /* nothing set */ |
| 410 |
> |
if (!(clr->flags & (C_CSXY|C_CSSPEC))) /* nothing set! */ |
| 411 |
|
*clr = c_dfcolor; |
| 412 |
|
else if (fl & C_CSXY) { /* cspec -> cxy */ |
| 413 |
|
x = y = z = 0.; |
| 487 |
|
clr->ssum += clr->ssamp[i]; |
| 488 |
|
} |
| 489 |
|
clr->flags = C_CDSPEC|C_CSSPEC; |
| 490 |
+ |
clr->clock++; |
| 491 |
|
free((MEM_PTR)va); |
| 492 |
|
return(MG_OK); |
| 493 |
|
} |
| 526 |
|
cres->cy = (w1 + w2) * scale; |
| 527 |
|
cres->flags = C_CDXY|C_CSXY; |
| 528 |
|
} |
| 529 |
+ |
cres->clock++; /* record the change */ |
| 530 |
|
} |