88 |
|
if (source[si->sn].sflags & SFLAT) { |
89 |
|
si->dom *= sflatform(si->sn, dir); |
90 |
|
if (si->dom <= FTINY) { /* behind source */ |
91 |
< |
si->sp = si->np; |
91 |
> |
si->np = 0; |
92 |
|
goto tryagain; |
93 |
|
} |
94 |
|
si->dom *= (double)(size[SU]*size[SV])/(MAXSPART*MAXSPART); |
158 |
|
/* first check point location */ |
159 |
|
clrpart(si->spt); |
160 |
|
sp = &source[si->sn]; |
161 |
< |
rad2 = 1.273 * DOT(sp->ss[SV],sp->ss[SV]); |
161 |
> |
rad2 = 1.365 * DOT(sp->ss[SV],sp->ss[SV]); |
162 |
|
v[0] = ro[0] - sp->sloc[0]; |
163 |
|
v[1] = ro[1] - sp->sloc[1]; |
164 |
|
v[2] = ro[2] - sp->sloc[2]; |
212 |
|
newct[0] = cent[0] - newax[0]; |
213 |
|
newct[1] = cent[1] - newax[1]; |
214 |
|
newct[2] = cent[2] - newax[2]; |
215 |
< |
npl = cyl_partit(ro, pt, pi, mp*3/4, newct, newax, d2); |
215 |
> |
npl = cyl_partit(ro, pt, pi, mp/2, newct, newax, d2); |
216 |
|
/* upper half */ |
217 |
|
newct[0] = cent[0] + newax[0]; |
218 |
|
newct[1] = cent[1] + newax[1]; |
219 |
|
newct[2] = cent[2] + newax[2]; |
220 |
< |
npu = cyl_partit(ro, pt, pi, mp-npl, newct, newax, d2); |
220 |
> |
npu = cyl_partit(ro, pt, pi, mp/2, newct, newax, d2); |
221 |
|
/* return total */ |
222 |
|
return(npl + npu); |
223 |
|
} |
282 |
|
newct[0] = cent[0] - newax[0]; |
283 |
|
newct[1] = cent[1] - newax[1]; |
284 |
|
newct[2] = cent[2] - newax[2]; |
285 |
< |
npl = flt_partit(ro, pt, pi, mp*3/4, newct, u, v, du2, dv2); |
285 |
> |
npl = flt_partit(ro, pt, pi, mp/2, newct, u, v, du2, dv2); |
286 |
|
/* upper half */ |
287 |
|
newct[0] = cent[0] + newax[0]; |
288 |
|
newct[1] = cent[1] + newax[1]; |
289 |
|
newct[2] = cent[2] + newax[2]; |
290 |
< |
npu = flt_partit(ro, pt, pi, mp-npl, newct, u, v, du2, dv2); |
290 |
> |
npu = flt_partit(ro, pt, pi, mp/2, newct, u, v, du2, dv2); |
291 |
|
/* return total */ |
292 |
|
return(npl + npu); |
293 |
|
} |