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.3 by greg, Thu May 17 17:10:23 2012 UTC vs.
Revision 3.7 by greg, Thu Mar 26 15:57:19 2015 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)     ((double)(c)->ssamp[((l)-C_MINWL)/C_CWLI] / (c)->ssum)
48 > #define c_cval(c,l)     ((c)->ssamp[((l)+(C_CWLI/2.-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  
53 + extern const C_COLOR    c_x31, c_y31, c_z31;    /* 1931 standard observer */
54 +
55 +                                                /* set CIE (x,y) chromaticity */
56 + #define c_cset(c,x,y)   ((c)->cx=(x),(c)->cy=(y),(c)->flags=C_CDXY|C_CSXY)
57 +
58 +                                                /* set black body spectrum */
59 + extern int      c_bbtemp(C_COLOR *clr, double tk);
60                                                  /* assign arbitrary spectrum */
61   extern double   c_sset(C_COLOR *clr, double wlmin, double wlmax,
62                                  const float spec[], int nwl);
# Line 58 | Line 68 | extern void    c_cmix(C_COLOR *cres, double w1, C_COLOR *
68                                                  /* multiply two colors */
69   extern double   c_cmult(C_COLOR *cres, C_COLOR *c1, double y1,
70                                  C_COLOR *c2, double y2);
71 <                                                /* set black body spectrum */
72 < extern int      c_bbtemp(C_COLOR *clr, double tk);
71 >                                                /* convert to sharpened RGB */
72 > extern void     c_toSharpRGB(C_COLOR *cin, double cieY, float cout[3]);
73 >                                                /* convert from sharpened RGB */
74 > extern double   c_fromSharpRGB(float cin[3], C_COLOR *cout);
75 >                                                /* encode (x,y) chromaticity */
76 > extern C_CHROMA c_encodeChroma(C_COLOR *clr);
77 >                                                /* decode (x,y) chromaticity */
78 > extern void     c_decodeChroma(C_COLOR *cres, C_CHROMA ccode);
79 >
80 > /* The following two routines are not defined in ccolor.c */
81                                                  /* convert to RGB color */
82   extern void     ccy2rgb(C_COLOR *cin, double cieY, float cout[3]);
83                                                  /* convert from RGB color */

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines