ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/ccolor.h
(Generate patch)

Comparing ray/src/common/ccolor.h (file contents):
Revision 3.5 by greg, Fri May 18 20:43:13 2012 UTC vs.
Revision 3.9 by greg, Wed Nov 15 18:02:52 2023 UTC

# Line 33 | Line 33 | typedef struct {
33          float   eff;            /* efficacy (lumens/watt) */
34   } C_COLOR;
35  
36 + typedef unsigned short  C_CHROMA;       /* encoded (x,y) chromaticity */
37 +
38   #define C_DEFCOLOR      { 1, NULL, C_CDXY|C_CSXY|C_CSSPEC|C_CSEFF,\
39                          {C_CMAXV,C_CMAXV,C_CMAXV,C_CMAXV,C_CMAXV,\
40                          C_CMAXV,C_CMAXV,C_CMAXV,C_CMAXV,C_CMAXV,C_CMAXV,\
# Line 43 | Line 45 | typedef struct {
45                          C_CMAXV,C_CMAXV,C_CMAXV,C_CMAXV,C_CMAXV,C_CMAXV},\
46                          (long)C_CNSS*C_CMAXV, 1./3., 1./3., 178.006 }
47  
48 < #define c_cval(c,l)     ((c)->ssamp[((l)+(C_CWLI/2.-C_MINWL))/C_CWLI] \
48 > #define c_cval(c,l)     ((c)->ssamp[((l)+(.5*C_CWLI-C_MINWL))/C_CWLI] \
49                                                  / (double)(c)->ssum)
50  
51 < extern C_COLOR          c_dfcolor;              /* default color */
51 > extern const C_COLOR    c_dfcolor;              /* default color */
52 > extern const C_CHROMA   c_dfchroma;             /* c_encodeChroma(&c_dfcolor) */
53  
54 + extern const C_COLOR    c_x31, c_y31, c_z31;    /* 1931 standard observer */
55 +
56                                                  /* set CIE (x,y) chromaticity */
57   #define c_cset(c,x,y)   ((c)->cx=(x),(c)->cy=(y),(c)->flags=C_CDXY|C_CSXY)
58  
# Line 68 | Line 73 | extern double  c_cmult(C_COLOR *cres, C_COLOR *c1, doub
73   extern void     c_toSharpRGB(C_COLOR *cin, double cieY, float cout[3]);
74                                                  /* convert from sharpened RGB */
75   extern double   c_fromSharpRGB(float cin[3], C_COLOR *cout);
76 +                                                /* encode (x,y) chromaticity */
77 + extern C_CHROMA c_encodeChroma(C_COLOR *clr);
78 +                                                /* decode (x,y) chromaticity */
79 + extern void     c_decodeChroma(C_COLOR *cres, C_CHROMA ccode);
80  
81 < /* The following two routines are not defined in ccolor.c */
81 > #ifdef _RAD_COLOR_H_
82 > /* The following four routines are defined in ccyrgb.c */
83                                                  /* convert to RGB color */
84 < extern void     ccy2rgb(C_COLOR *cin, double cieY, float cout[3]);
84 > extern void     ccy2rgb(C_COLOR *cin, double cieY, COLOR cout);
85                                                  /* convert from RGB color */
86 < extern double   rgb2ccy(float cin[3], C_COLOR *cout);
86 > extern double   rgb2ccy(COLOR cin, C_COLOR *cout);
87 >                                                /* convert to spectral color */
88 > extern void     ccy2scolor(C_COLOR *cin, double cieY, SCOLOR sco);
89 >                                                /* convert from spectral color */
90 > extern double   scolor2ccy(SCOLOR sci, C_COLOR *cout);
91 >
92 > #endif /* _RAD_COLOR_H_ */
93  
94   #ifdef __cplusplus
95   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines