--- ray/src/rt/ray.h 1993/05/25 10:30:14 2.3 +++ ray/src/rt/ray.h 1996/06/05 11:27:30 2.9 @@ -1,4 +1,4 @@ -/* Copyright (c) 1992 Regents of the University of California */ +/* Copyright (c) 1995 Regents of the University of California */ /* SCCSid "$SunId$ LBL" */ @@ -14,6 +14,8 @@ #include "color.h" +#define MAXDIM 32 /* maximum number of dimensions */ + /* ray type flags */ #define PRIMARY 01 /* original ray */ #define SHADOW 02 /* ray to light source */ @@ -35,6 +37,7 @@ typedef struct ray { struct ray *parent; /* ray this originated from */ FVECT rorg; /* origin of ray */ FVECT rdir; /* normalized direction of ray */ + double rmax; /* maximum distance (aft clipping plane) */ int rsrc; /* source we're aiming for */ OBJECT *clipset; /* set of objects currently clipped */ OBJECT *newcset; /* next clipset, used for transmission */ @@ -49,16 +52,20 @@ typedef struct ray { COLOR pcol; /* pattern color */ COLOR rcol; /* returned ray value */ double rt; /* returned effective ray length */ + COLOR cext; /* medium extinction coefficient */ + COLOR albedo; /* medium scattering albedo */ + float gecc; /* scattering eccentricity coefficient */ + int *slights; /* list of lights to test for scattering */ } RAY; extern int raytrace(); extern double raynormal(); +extern double raydist(); + extern int dimlist[]; /* dimension list for distribution */ extern int ndims; /* number of dimensions so far */ extern int samplendx; /* index for this sample */ - -#define MAXDIM 32 /* maximum number of dimensions */ #define rayvalue(r) (*(r)->revf)(r)