143 |
|
ourspot.flen = 0.; |
144 |
|
if (source[sn].sflags & SSPOT) { |
145 |
|
multp3(theirspot.aim, source[sn].sl.s->aim, pm); |
146 |
+ |
/* adjust for source size */ |
147 |
|
d = sqrt(dist2(ourspot.aim, theirspot.aim)); |
148 |
|
d = sqrt(source[sn].sl.s->siz/PI) + d*source[sn].srad; |
149 |
|
theirspot.siz = PI*d*d; |
170 |
|
if (source[sn].sflags & SPROX && d > source[sn].sl.prox) |
171 |
|
return(-1); /* too far away */ |
172 |
|
ourspot.flen = 0.; |
173 |
+ |
/* adjust for source size */ |
174 |
|
d = (sqrt(maxrad2) + source[sn].srad) / d; |
175 |
|
if (d < 1.-FTINY) |
176 |
|
ourspot.siz = 2.*PI*(1. - sqrt(1.-d*d)); |
222 |
|
VCOPY(source[i].snorm, nsnorm); |
223 |
|
else |
224 |
|
multv3(source[i].ss[SW], source[sn].ss[SW], pm); |
225 |
+ |
source[i].srad = source[sn].srad; |
226 |
|
source[i].ss2 = source[sn].ss2; |
227 |
|
if (nsflags & SSPOT) { |
228 |
|
if ((source[i].sl.s = (SPOT *)malloc(sizeof(SPOT))) == NULL) |