| 1 | greg | 1.1 | /* Copyright (c) 1991 Regents of the University of California */ | 
| 2 |  |  |  | 
| 3 |  |  | /* SCCSid "$SunId$ LBL" */ | 
| 4 |  |  |  | 
| 5 |  |  | /* | 
| 6 |  |  | * Common definitions for interreflection routines. | 
| 7 |  |  | */ | 
| 8 |  |  |  | 
| 9 |  |  | /* | 
| 10 |  |  | * Since we've defined our vectors as float below to save space, | 
| 11 |  |  | * watch out for changes in the definitions of VCOPY() and DOT() | 
| 12 |  |  | * and don't pass these vectors to fvect routines. | 
| 13 |  |  | */ | 
| 14 |  |  | typedef struct ambrec { | 
| 15 |  |  | float  pos[3];          /* position in space */ | 
| 16 |  |  | float  dir[3];          /* normal direction */ | 
| 17 |  |  | int  lvl;               /* recursion level of parent ray */ | 
| 18 |  |  | float  weight;          /* weight of parent ray */ | 
| 19 |  |  | float  rad;             /* validity radius */ | 
| 20 |  |  | COLOR  val;             /* computed ambient value */ | 
| 21 |  |  | float  gpos[3];         /* gradient wrt. position */ | 
| 22 |  |  | float  gdir[3];         /* gradient wrt. direction */ | 
| 23 |  |  | struct ambrec  *next;   /* next in list */ | 
| 24 |  |  | }  AMBVAL;                      /* ambient value */ | 
| 25 |  |  |  | 
| 26 |  |  | extern COLOR  ambval;           /* global ambient component */ | 
| 27 |  |  | extern double  ambacc;          /* ambient accuracy */ | 
| 28 |  |  | extern int  ambres;             /* ambient resolution */ | 
| 29 |  |  | extern int  ambdiv;             /* number of divisions for calculation */ | 
| 30 |  |  | extern int  ambssamp;           /* number of super-samples */ | 
| 31 |  |  | extern int  ambounce;           /* number of ambient bounces */ | 
| 32 |  |  | extern char  *amblist[];        /* ambient include/exclude list */ | 
| 33 |  |  | extern int  ambincl;            /* include == 1, exclude == 0 */ | 
| 34 |  |  | extern double  maxarad;         /* maximum ambient radius */ | 
| 35 |  |  | extern double  minarad;         /* minimum ambient radius */ | 
| 36 |  |  |  | 
| 37 |  |  | extern double  sumambient(), doambient(), makeambient(); | 
| 38 | greg | 1.2 |  | 
| 39 |  |  | #define  AVGREFL        0.5     /* assumed average reflectance */ |