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 |
|
} |