145 |
|
src->so = so; |
146 |
|
if (so->oargs.nfargs != 4) |
147 |
|
objerror(so, USER, "bad arguments"); |
148 |
< |
src->sflags |= SDISTANT; |
148 |
> |
src->sflags |= (SDISTANT|SCIR); |
149 |
|
VCOPY(src->sloc, so->oargs.farg); |
150 |
|
if (normalize(src->sloc) == 0.0) |
151 |
|
objerror(so, USER, "zero direction"); |
174 |
|
objerror(so, USER, "bad # arguments"); |
175 |
|
if (so->oargs.farg[3] <= FTINY) |
176 |
|
objerror(so, USER, "illegal source radius"); |
177 |
+ |
src->sflags |= SCIR; |
178 |
|
VCOPY(src->sloc, so->oargs.farg); |
179 |
|
src->srad = so->oargs.farg[3]; |
180 |
|
src->ss2 = PI * src->srad * src->srad; |
181 |
|
for (i = 0; i < 3; i++) |
182 |
|
src->ss[SU][i] = src->ss[SV][i] = src->ss[SW][i] = 0.0; |
183 |
|
for (i = 0; i < 3; i++) |
184 |
< |
src->ss[i][i] = .7236 * so->oargs.farg[3]; |
184 |
> |
src->ss[i][i] = 0.7236 * so->oargs.farg[3]; |
185 |
|
} |
186 |
|
|
187 |
|
|
201 |
|
VCOPY(src->sloc, CO_P0(co)); |
202 |
|
if (CO_R0(co) > 0.0) |
203 |
|
objerror(so, USER, "cannot hit source center"); |
204 |
< |
src->sflags |= SFLAT; |
204 |
> |
src->sflags |= (SFLAT|SCIR); |
205 |
|
VCOPY(src->snorm, co->ad); |
206 |
|
src->srad = CO_R1(co); |
207 |
|
src->ss2 = PI * src->srad * src->srad; |