241 |
|
RGBPRIMS pr |
242 |
|
) |
243 |
|
{ |
244 |
< |
int i; |
244 |
> |
int i, j; |
245 |
|
|
246 |
< |
for (i = 0; i < 4; i++) { |
247 |
< |
if ((pr[i][CIEX] <= CEPS) | (pr[i][CIEY] <= CEPS)) |
246 |
> |
for (i = 0; i < 3; i++) { |
247 |
> |
if ((pr[i][CIEX] <= -1.) | (pr[i][CIEY] <= -1.)) |
248 |
|
return(0); |
249 |
< |
if ((pr[i][CIEX] >= 1.-CEPS) | (pr[i][CIEY] >= 1.-CEPS)) |
249 |
> |
if ((pr[i][CIEX] >= 2.) | (pr[i][CIEY] >= 2.)) |
250 |
|
return(0); |
251 |
+ |
if (pr[i][CIEX] + pr[i][CIEY] <= -1.) |
252 |
+ |
return(0); |
253 |
+ |
if (pr[i][CIEX] + pr[i][CIEY] >= 2.) |
254 |
+ |
return(0); |
255 |
|
} |
256 |
+ |
if ((pr[3][CIEX] <= 0.) | (pr[3][CIEX] >= 1.) | |
257 |
+ |
(pr[3][CIEY] <= 0.) | (pr[3][CIEY] >= 1.)) |
258 |
+ |
return(0); |
259 |
+ |
for (i = 0; i < 4; i++) |
260 |
+ |
for (j = i+1; j < 4; j++) |
261 |
+ |
if (CEQ(pr[i][CIEX],pr[j][CIEX]) && |
262 |
+ |
CEQ(pr[i][CIEY],pr[j][CIEY])) |
263 |
+ |
return(0); |
264 |
|
return(1); |
265 |
|
} |
266 |
|
|
276 |
|
|
277 |
|
if (pr == stdprims) { /* can use xyz2rgbmat */ |
278 |
|
cpcolormat(mat, xyz2rgbmat); |
279 |
< |
return; |
279 |
> |
return(1); |
280 |
|
} |
281 |
|
if (CEQ(pr[WHT][CIEX],0.) | CEQ(pr[WHT][CIEY],0.)) |
282 |
|
return(0); |
336 |
|
|
337 |
|
if (pr == stdprims) { /* can use rgb2xyzmat */ |
338 |
|
cpcolormat(mat, rgb2xyzmat); |
339 |
< |
return; |
339 |
> |
return(1); |
340 |
|
} |
341 |
|
if (CEQ(pr[WHT][CIEX],0.) | CEQ(pr[WHT][CIEY],0.)) |
342 |
|
return(0); |
383 |
|
mat[0][0] = mat[1][1] = mat[2][2] = 1.0; |
384 |
|
mat[0][1] = mat[0][2] = mat[1][0] = |
385 |
|
mat[1][2] = mat[2][0] = mat[2][1] = 0.0; |
386 |
< |
return; |
386 |
> |
return(1); |
387 |
|
} |
388 |
|
if (!comprgb2xyzmat(pr1toxyz, pr1)) |
389 |
|
return(0); |