--- ray/src/common/color.h 1989/02/02 10:34:14 1.1 +++ ray/src/common/color.h 1990/12/14 12:48:30 1.7 @@ -40,13 +40,44 @@ typedef float COLOR[3]; /* red, green, blue */ #define multcolor(c1,c2) ((c1)[0]*=(c2)[0],(c1)[1]*=(c2)[1],(c1)[2]*=(c2)[2]) -#define bright(col) (.30*(col)[RED]+.59*(col)[GRN]+.11*(col)[BLU]) +#ifdef NTSC +#define bright(col) (.295*(col)[RED]+.636*(col)[GRN]+.070*(col)[BLU]) +#define normbright(c) (int)((74L*(c)[RED]+164L*(c)[GRN]+18L*(c)[BLU])/256) +#else +#define bright(col) (.263*(col)[RED]+.655*(col)[GRN]+.082*(col)[BLU]) +#define normbright(c) (int)((67L*(c)[RED]+168L*(c)[GRN]+21L*(c)[BLU])/256) +#endif #define intens(col) ( (col)[0] > (col)[1] \ ? (col)[0] > (col)[2] ? (col)[0] : (col)[2] \ : (col)[1] > (col)[2] ? (col)[1] : (col)[2] ) +#define colrval(c,p) ( (c)[EXP] ? \ + ldexp((c)[p]+.5,(int)(c)[EXP]-(COLXS+8)) : \ + 0. ) + #define WHTCOLOR {1.0,1.0,1.0} #define BLKCOLOR {0.0,0.0,0.0} #define WHTCOLR {128,128,128,COLXS+1} #define BLKCOLR {0,0,0,0} + + /* definitions for resolution header */ +#define XDECR 1 +#define YDECR 2 +#define YMAJOR 4 + + /* macros for exposures */ +#define EXPOSSTR "EXPOSURE=" +#define EXPOSSTRL 9 +#define isexpos(hl) (!strncmp(hl,EXPOSSTR,EXPOSSTRL)) +#define exposval(hl) atof((hl)+EXPOSSTRL) +#define fputexpos(ex,fp) fprintf(fp,"%s%e\n",EXPOSSTR,ex) + + /* macros for pixel aspect ratios */ +#define ASPECTSTR "PIXASPECT=" +#define ASPECTSTRL 10 +#define isaspect(hl) (!strncmp(hl,ASPECTSTR,ASPECTSTRL)) +#define aspectval(hl) atof((hl)+ASPECTSTRL) +#define fputaspect(pa,fp) fprintf(fp,"%s%f\n",ASPECTSTR,pa) + +extern double ldexp(), atof();