--- ray/src/rt/raytrace.c 1993/01/26 09:28:00 2.3 +++ ray/src/rt/raytrace.c 1993/05/25 10:30:01 2.6 @@ -25,8 +25,8 @@ extern int maxdepth; /* maximum recursion depth */ extern double minweight; /* minimum ray weight */ extern int do_irrad; /* compute irradiance? */ -long raynum = 0L; /* next unique ray number */ -long nrays = 0L; /* number of calls to localhit */ +unsigned long raynum = 0; /* next unique ray number */ +unsigned long nrays = 0; /* number of calls to localhit */ static FLOAT Lambfa[5] = {PI, PI, PI, 0.0, 0.0}; OBJREC Lamb = { @@ -34,6 +34,8 @@ OBJREC Lamb = { {0, 5, NULL, Lambfa}, NULL, }; /* a Lambertian surface */ +static int raymove(), checkset(), checkhit(); + #define MAXLOOP 128 /* modifier loop detection */ #define RAYHIT (-1) /* return value for intercepted ray */ @@ -461,6 +463,8 @@ OBJECT *cxs; checkset(oset, cxs); /* eliminate double-checking */ for (i = oset[0]; i > 0; i--) { o = objptr(oset[i]); + if (o->omod == OVOID && issurface(o->otype)) + continue; /* ignore void surfaces */ (*ofun[o->otype].funp)(o, r); } if (r->ro == NULL)