ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/rt/ray.h
(Generate patch)

Comparing ray/src/rt/ray.h (file contents):
Revision 1.3 by greg, Thu Mar 22 20:07:01 1990 UTC vs.
Revision 2.2 by greg, Sat Jan 4 19:53:55 1992 UTC

# Line 1 | Line 1
1 < /* Copyright (c) 1986 Regents of the University of California */
1 > /* Copyright (c) 1992 Regents of the University of California */
2  
3   /* SCCSid "$SunId$ LBL" */
4  
# Line 21 | Line 21
21   #define  REFRACTED      010             /* refracted (bent) ray */
22   #define  TRANS          020             /* transmitted/transferred ray */
23   #define  AMBIENT        040             /* ray scattered for interreflection */
24 + #define  SPECULAR       0100            /* ray scattered for specular */
25  
26                                  /* reflected ray types */
27 < #define  RAYREFL        (SHADOW|REFLECTED|AMBIENT)
27 > #define  RAYREFL        (SHADOW|REFLECTED|AMBIENT|SPECULAR)
28  
29   typedef struct ray {
30          long  rno;              /* unique ray number */
# Line 37 | Line 38 | typedef struct ray {
38          int  rsrc;              /* source we're aiming for */
39          OBJECT  *clipset;       /* set of objects currently clipped */
40          OBJECT  *newcset;       /* next clipset, used for transmission */
41 +        int  (*revf)();         /* evaluation function for this ray */
42          OBJREC  *ro;            /* intersected object */
43          double  rot;            /* distance to object */
44          FVECT  rop;             /* intersection point */
45          FVECT  ron;             /* intersection surface normal */
46          double  rod;            /* -DOT(rdir, ron) */
47 <        double  rofx[4][4];     /* transform from object space */
46 <        double  rofs;           /* scaling factor from object */
47 <        double  robx[4][4];     /* transform back to object space */
48 <        double  robs;           /* back scaling factor */
47 >        FULLXF  *rox;           /* object transformation */
48          FVECT  pert;            /* surface normal perturbation */
49          COLOR  pcol;            /* pattern color */
50          COLOR  rcol;            /* returned ray value */
51          double  rt;             /* returned effective ray length */
52   }  RAY;
53  
54 + extern int  raytrace();
55 +
56   extern double  raynormal();
57 +
58 + extern int  dimlist[];          /* dimension list for distribution */
59 + extern int  ndims;              /* number of dimensions so far */
60 + extern int  samplendx;          /* index for this sample */
61 +
62 + #define  MAXDIM         32      /* maximum number of dimensions */
63 +
64 + #define  rayvalue(r)    (*(r)->revf)(r)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines