Back to index

radiance  4R0+20100331
Defines | Functions | Variables
cvrgb.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include "parser.h"

Go to the source code of this file.

Defines

#define CIE_x_r   0.640 /* nominal CRT primaries */
#define CIE_y_r   0.330
#define CIE_x_g   0.290
#define CIE_y_g   0.600
#define CIE_x_b   0.150
#define CIE_y_b   0.060
#define CIE_x_w   0.3333 /* use true white */
#define CIE_y_w   0.3333
#define CIE_C_rD
#define CIE_C_gD
#define CIE_C_bD

Functions

void mgf2rgb (register C_COLOR *cin, double intensity, register float cout[3])

Variables

static const char RCSid [] = "$Id: cvrgb.c,v 1.3 2003/11/15 17:54:06 schorsch Exp $"
float xyz2rgbmat [3][3]

Define Documentation

#define CIE_C_bD
Value:
( (1./CIE_y_w) * \
                            ( CIE_x_w*(CIE_y_r - CIE_y_g) - \
                              CIE_y_w*(CIE_x_r - CIE_x_g) + \
                              CIE_x_r*CIE_y_g - CIE_x_g*CIE_y_r       ) )

Definition at line 31 of file cvrgb.c.

#define CIE_C_gD
Value:
( (1./CIE_y_w) * \
                            ( CIE_x_w*(CIE_y_b - CIE_y_r) - \
                              CIE_y_w*(CIE_x_b - CIE_x_r) - \
                              CIE_x_r*CIE_y_b + CIE_x_b*CIE_y_r       ) )

Definition at line 27 of file cvrgb.c.

#define CIE_C_rD
Value:
( (1./CIE_y_w) * \
                            ( CIE_x_w*(CIE_y_g - CIE_y_b) - \
                              CIE_y_w*(CIE_x_g - CIE_x_b) + \
                              CIE_x_g*CIE_y_b - CIE_x_b*CIE_y_g       ) )

Definition at line 23 of file cvrgb.c.

#define CIE_x_b   0.150

Definition at line 18 of file cvrgb.c.

#define CIE_x_g   0.290

Definition at line 16 of file cvrgb.c.

#define CIE_x_r   0.640 /* nominal CRT primaries */

Definition at line 14 of file cvrgb.c.

#define CIE_x_w   0.3333 /* use true white */

Definition at line 20 of file cvrgb.c.

#define CIE_y_b   0.060

Definition at line 19 of file cvrgb.c.

#define CIE_y_g   0.600

Definition at line 17 of file cvrgb.c.

#define CIE_y_r   0.330

Definition at line 15 of file cvrgb.c.

#define CIE_y_w   0.3333

Definition at line 21 of file cvrgb.c.


Function Documentation

void mgf2rgb ( register C_COLOR cin,
double  intensity,
register float  cout[3] 
)

Definition at line 51 of file cvrgb.c.

{
       static double cie[3];
                                   /* get CIE XYZ representation */
       c_ccvt(cin, C_CSXY);
       cie[0] = intensity*cin->cx/cin->cy;
       cie[1] = intensity;
       cie[2] = intensity*(1./cin->cy - 1.) - cie[0];
                                   /* convert to RGB */
       cout[0] = xyz2rgbmat[0][0]*cie[0] + xyz2rgbmat[0][1]*cie[1]
                     + xyz2rgbmat[0][2]*cie[2];
       if(cout[0] < 0.) cout[0] = 0.;
       cout[1] = xyz2rgbmat[1][0]*cie[0] + xyz2rgbmat[1][1]*cie[1]
                     + xyz2rgbmat[1][2]*cie[2];
       if(cout[1] < 0.) cout[1] = 0.;
       cout[2] = xyz2rgbmat[2][0]*cie[0] + xyz2rgbmat[2][1]*cie[1]
                     + xyz2rgbmat[2][2]*cie[2];
       if(cout[2] < 0.) cout[2] = 0.;
}

Here is the call graph for this function:

Here is the caller graph for this function:


Variable Documentation

const char RCSid[] = "$Id: cvrgb.c,v 1.3 2003/11/15 17:54:06 schorsch Exp $" [static]

Definition at line 2 of file cvrgb.c.

float xyz2rgbmat[3][3]
Initial value:

Definition at line 37 of file cvrgb.c.