| # | 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 (old) |
| > | Changed lines (new) |