--- ray/src/rt/source.h 1989/02/02 10:41:15 1.1 +++ ray/src/rt/source.h 1989/06/07 08:35:12 1.2 @@ -10,32 +10,25 @@ #define SDISTANT 01 /* source distant flag */ #define SSKIP 02 /* source skip flag */ -#define SPROX 04 /* source proximity flag */ -#define SSPOT 010 /* source spotlight flag */ typedef struct { - float siz; /* output solid angle */ - float flen; /* focal length */ - FVECT aim; /* aim direction */ -} SPOT; /* spotlight */ - -typedef struct { short sflags; /* source flags */ FVECT sloc; /* direction or position of source */ float ss; /* tangent or disk radius */ float ss2; /* domega or projected area */ - union { - float prox; /* proximity */ - SPOT *s; /* spot */ - } sl; /* localized source information */ + long ntests, nhits; /* shadow tests and hits */ OBJREC *so; /* source object */ -} SOURCE; /* light source */ +} SRCREC; /* light source */ -#define MAXSOURCE 512 /* maximum # of sources */ +typedef struct { + int sno; /* source number */ + FVECT dir; /* source direction */ + float dom; /* domega for source */ + float brt; /* brightness (for comparison) */ + COLOR val; /* contribution */ +} CONTRIB; /* direct contribution */ -extern SOURCE srcval[MAXSOURCE]; /* our source list */ +extern SRCREC *source; /* our source list */ extern int nsources; /* the number of sources */ -extern double srcray(); /* ray to source */ - -extern SPOT *makespot(); /* make spotlight */ +extern double srcray(); /* ray to source */