# | Line 206 | Line 206 | FVECT pg, dg; | |
---|---|---|
206 | b = 1.0/ndivs; | |
207 | scalecolor(acol, b); | |
208 | if (arad <= FTINY) | |
209 | < | arad = FHUGE; |
210 | < | else |
209 | > | arad = maxarad; |
210 | > | else { |
211 | arad = (ndivs+ns)/arad; | |
212 | + | if (arad > maxarad) |
213 | + | arad = maxarad; |
214 | + | } |
215 | if (pg != NULL) { /* reduce radius if gradient large */ | |
216 | d = DOT(pg,pg); | |
217 | if (d*arad*arad > 1.0) | |
218 | arad = 1.0/sqrt(d); | |
219 | } | |
220 | < | if (arad > maxarad) |
218 | < | arad = maxarad; |
219 | < | else if (arad < minarad) |
220 | > | if (arad < minarad) { |
221 | arad = minarad; | |
222 | + | if (pg != NULL && d*arad*arad > 1.0) { /* cap gradient */ |
223 | + | d = 1.0/arad/sqrt(d); |
224 | + | for (i = 0; i < 3; i++) |
225 | + | pg[i] *= d; |
226 | + | } |
227 | + | } |
228 | return(arad/sqrt(wt)); | |
229 | oopsy: | |
230 | if (div != NULL) |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |