| 21 | 
  | 
int     ndims = 0;                      /* number of sampling dimensions */ | 
| 22 | 
  | 
int     samplendx = 0;                  /* index for this sample */ | 
| 23 | 
  | 
 | 
| 24 | 
< | 
static void     trace_contrib(RAY *r);  /* our trace callback */ | 
| 25 | 
< | 
void    (*trace)() = trace_contrib; | 
| 24 | 
> | 
void    (*trace)(); | 
| 25 | 
  | 
 | 
| 26 | 
  | 
int     do_irrad = 0;                   /* compute irradiance? */ | 
| 27 | 
  | 
 | 
| 28 | 
  | 
int     rand_samp = 1;                  /* pure Monte Carlo sampling? */ | 
| 29 | 
  | 
 | 
| 30 | 
  | 
double  dstrsrc = 0.9;                  /* square source distribution */ | 
| 31 | 
< | 
double  shadthresh = .03;               /* shadow threshold */ | 
| 31 | 
> | 
double  shadthresh = 0.;                /* shadow threshold */ | 
| 32 | 
  | 
double  shadcert = .75;                 /* shadow certainty */ | 
| 33 | 
  | 
int     directrelay = 3;                /* number of source relays */ | 
| 34 | 
  | 
int     vspretest = 512;                /* virtual source pretest density */ | 
| 51 | 
  | 
char    *ambfile = NULL;                /* ambient file name */ | 
| 52 | 
  | 
COLOR   ambval = BLKCOLOR;              /* ambient value */ | 
| 53 | 
  | 
int     ambvwt = 0;                     /* initial weight for ambient value */ | 
| 54 | 
< | 
double  ambacc = 0;                     /* ambient accuracy */ | 
| 54 | 
> | 
double  ambacc = 0.;                    /* ambient accuracy */ | 
| 55 | 
  | 
int     ambres = 256;                   /* ambient resolution */ | 
| 56 | 
  | 
int     ambdiv = 350;                   /* ambient divisions */ | 
| 57 | 
  | 
int     ambssamp = 0;                   /* ambient super-samples */ | 
| 66 | 
  | 
RNUMBER lastray = 0;                    /* last ray number sent */ | 
| 67 | 
  | 
RNUMBER lastdone = 0;                   /* last ray output */ | 
| 68 | 
  | 
 | 
| 69 | 
+ | 
static void     trace_contrib(RAY *r);  /* our trace callback */ | 
| 70 | 
+ | 
 | 
| 71 | 
  | 
static void mcfree(void *p) { epfree((*(MODCONT *)p).binv); free(p); } | 
| 72 | 
  | 
 | 
| 73 | 
  | 
LUTAB   modconttab = LU_SINIT(NULL,mcfree);     /* modifier lookup table */ | 
| 197 | 
  | 
                                        /* set shared memory boundary */ | 
| 198 | 
  | 
                shm_boundary = strcpy((char *)malloc(16), "SHM_BOUNDARY"); | 
| 199 | 
  | 
        } | 
| 200 | 
+ | 
        trace = trace_contrib;          /* set up trace call-back */ | 
| 201 | 
  | 
        for (i = 0; i < nsources; i++)  /* tracing to sources as well */ | 
| 202 | 
  | 
                source[i].sflags |= SFOLLOW; | 
| 203 | 
  | 
        if (yres > 0) {                 /* set up flushing & ray counts */ |