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.2 by greg, Thu May 17 05:47:59 2012 UTC vs.
Revision 3.10 by greg, Thu Jan 4 01:55:42 2024 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)+(.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 void     c_ccvt(C_COLOR *, int);         /* fix color representation */
55 < extern int      c_isgrey(C_COLOR *);            /* check if color is grey */
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 >
59 >                                                /* set black body spectrum */
60 > extern int      c_bbtemp(C_COLOR *clr, double tk);
61 >                                                /* assign arbitrary spectrum */
62 > extern double   c_sset(C_COLOR *clr, double wlmin, double wlmax,
63 >                                const float spec[], int nwl);
64 > extern void     c_ccvt(C_COLOR *clr, int fl);   /* fix color representation */
65 >                                                /* are colors equivalent? */
66 > extern int      c_equiv(C_COLOR *c1, C_COLOR *c2);
67 > extern int      c_isgrey(C_COLOR *clr);         /* check if color is grey */
68                                                  /* mix two colors */
69   extern void     c_cmix(C_COLOR *cres, double w1, C_COLOR *c1,
70                                  double w2, C_COLOR *c2);
71                                                  /* multiply two colors */
72   extern double   c_cmult(C_COLOR *cres, C_COLOR *c1, double y1,
73                                  C_COLOR *c2, double y2);
74 <                                                /* set black body spectrum */
75 < extern int      c_bbtemp(C_COLOR *clr, double tk);
74 >                                                /* convert to sharpened RGB */
75 > extern void     c_toSharpRGB(C_COLOR *cin, double cieY, float cout[3]);
76 >                                                /* convert from sharpened RGB */
77 > extern double   c_fromSharpRGB(float cin[3], C_COLOR *cout);
78 >                                                /* encode (x,y) chromaticity */
79 > extern C_CHROMA c_encodeChroma(C_COLOR *clr);
80 >                                                /* decode (x,y) chromaticity */
81 > extern void     c_decodeChroma(C_COLOR *cres, C_CHROMA ccode);
82 >
83 > #ifdef _RAD_COLOR_H_
84 > /* The following four routines are defined in ccyrgb.c */
85                                                  /* convert to RGB color */
86 < extern void     ccy2rgb(C_COLOR *cin, double cieY, float cout[3]);
86 > extern void     ccy2rgb(C_COLOR *cin, double cieY, COLOR cout);
87                                                  /* convert from RGB color */
88 < extern double   rgb2ccy(float cin[3], C_COLOR *cout);
88 > extern double   rgb2ccy(COLOR cin, C_COLOR *cout);
89 >                                                /* convert to spectral color */
90 > extern void     ccy2scolor(C_COLOR *cin, double cieY, SCOLOR sco);
91 >                                                /* convert from spectral color */
92 > extern double   scolor2ccy(SCOLOR sci, C_COLOR *cout);
93 >
94 > #endif /* _RAD_COLOR_H_ */
95  
96   #ifdef __cplusplus
97   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines