--- ray/src/rt/srcsupp.c 2003/02/25 02:47:23 2.10 +++ ray/src/rt/srcsupp.c 2005/10/16 16:04:10 2.15 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: srcsupp.c,v 2.10 2003/02/25 02:47:23 greg Exp $"; +static const char RCSid[] = "$Id: srcsupp.c,v 2.15 2005/10/16 16:04:10 greg Exp $"; #endif /* * Support routines for source objects and materials @@ -19,7 +19,7 @@ static const char RCSid[] = "$Id: srcsupp.c,v 2.10 200 #include "face.h" -#define SRCINC 4 /* realloc increment for array */ +#define SRCINC 8 /* realloc increment for array */ SRCREC *source = NULL; /* our list of sources */ int nsources = 0; /* the number of sources */ @@ -54,13 +54,16 @@ newsource() /* allocate new source in our array */ if (nsources == 0) source = (SRCREC *)malloc(SRCINC*sizeof(SRCREC)); else if (nsources%SRCINC == 0) - source = (SRCREC *)realloc((char *)source, + source = (SRCREC *)realloc((void *)source, (unsigned)(nsources+SRCINC)*sizeof(SRCREC)); if (source == NULL) return(-1); source[nsources].sflags = 0; source[nsources].nhits = 1; - source[nsources].ntests = 2; /* initial hit probability = 1/2 */ + source[nsources].ntests = 2; /* initial hit probability = 50% */ +#if SHADCACHE + source[nsources].obscache = NULL; +#endif return(nsources++); } @@ -106,7 +109,7 @@ OBJREC *so; src->sloc[j] /= (double)f->nv; } if (!inface(src->sloc, f)) - objerror(so, USER, "cannot hit center"); + objerror(so, USER, "cannot hit center for source"); src->sflags |= SFLAT; VCOPY(src->snorm, f->norm); src->ss2 = f->area; @@ -192,7 +195,7 @@ OBJREC *so; co = getcone(so, 0); VCOPY(src->sloc, CO_P0(co)); if (CO_R0(co) > 0.0) - objerror(so, USER, "cannot hit center"); + objerror(so, USER, "cannot hit center for source"); src->sflags |= SFLAT; VCOPY(src->snorm, co->ad); src->srad = CO_R1(co);