--- ray/src/common/otypes.h 2003/09/15 17:01:52 2.13 +++ ray/src/common/otypes.h 2018/06/26 14:42:18 2.19 @@ -1,4 +1,4 @@ -/* RCSid $Id: otypes.h,v 2.13 2003/09/15 17:01:52 greg Exp $ */ +/* RCSid $Id: otypes.h,v 2.19 2018/06/26 14:42:18 greg Exp $ */ /* * otypes.h - defines for object types. */ @@ -17,6 +17,13 @@ typedef struct { int (*funp)(); /* pointer to function */ #endif } FUN; + +#ifdef FUN_ARGLIST +extern int o_default(FUN_ARGLIST); +#else +extern int o_default(); /* XXX conflict with radogl.h */ +#endif + /* object types in decreasing frequency */ #define OBJ_FACE 0 /* polygon */ #define OBJ_CONE 1 /* cone */ @@ -53,23 +60,26 @@ typedef struct { #define MAT_MIST 32 /* mist medium */ #define MAT_MIRROR 33 /* mirror (secondary source) */ #define MAT_TFUNC 34 /* trans brdf function */ -#define MAT_BRTDF 35 /* brtd function */ -#define MAT_PDATA 36 /* plastic brdf data */ -#define MAT_MDATA 37 /* metal brdf data */ -#define MAT_TDATA 38 /* trans brdf data */ -#define PAT_CFUNC 39 /* color function */ -#define MAT_CLIP 40 /* clipping surface */ -#define PAT_CDATA 41 /* color data */ -#define PAT_CTEXT 42 /* colored text */ -#define TEX_DATA 43 /* surface texture data */ -#define MIX_FUNC 44 /* mixing function */ -#define MIX_DATA 45 /* mixing data */ -#define MIX_TEXT 46 /* mixing text */ -#define MIX_PICT 47 /* mixing picture */ -#define MAT_DIRECT1 48 /* unidirecting material */ -#define MAT_DIRECT2 49 /* bidirecting material */ +#define MAT_BRTDF 35 /* BRTD function */ +#define MAT_BSDF 36 /* BSDF data file */ +#define MAT_ABSDF 37 /* aperture BSDF data file */ +#define MAT_PDATA 38 /* plastic brdf data */ +#define MAT_MDATA 39 /* metal brdf data */ +#define MAT_TDATA 40 /* trans brdf data */ +#define PAT_CFUNC 41 /* color function */ +#define MAT_CLIP 42 /* clipping surface */ +#define PAT_CDATA 43 /* color data */ +#define PAT_CTEXT 44 /* colored text */ +#define TEX_DATA 45 /* surface texture data */ +#define MIX_FUNC 46 /* mixing function */ +#define MIX_DATA 47 /* mixing data */ +#define MIX_TEXT 48 /* mixing text */ +#define MIX_PICT 49 /* mixing picture */ +#define MAT_DIRECT1 50 /* unidirecting material */ +#define MAT_DIRECT2 51 /* bidirecting material */ +#define MAT_ASHIKHMIN 52 /* Ashikhmin-Shirley BRDF material */ /* number of object types */ -#define NUMOTYPE 50 +#define NUMOTYPE 53 /* type flags */ #define T_S 01 /* surface (object) */ #define T_M 02 /* material */ @@ -104,8 +114,6 @@ extern FUN ofun[]; /* our type list */ #define hastext(t) (ofun[t].flags & T_E) #define isflat(t) ((t)==OBJ_FACE || (t)==OBJ_RING) -extern int o_default(); - #define ALIASKEY "alias" /* alias keyword */ #define ALIASMOD "inherit" /* inherit target modifier */ @@ -146,6 +154,8 @@ extern int o_default(); { "mirror", T_M|T_LV, o_default }, \ { "transfunc", T_M|T_F, o_default }, \ { "BRTDfunc", T_M|T_F, o_default }, \ + { "BSDF", T_M|T_D, o_default }, \ + { "aBSDF", T_M|T_D, o_default }, \ { "plasdata", T_M|T_D, o_default }, \ { "metdata", T_M|T_D, o_default }, \ { "transdata", T_M|T_D, o_default }, \ @@ -160,6 +170,7 @@ extern int o_default(); { "mixpict", T_X|T_I, o_default }, \ { "prism1", T_M|T_F|T_LV, o_default }, \ { "prism2", T_M|T_F|T_LV, o_default }, \ + { "ashik2", T_M|T_F, o_default }, \ }