diff options
| author | Alvin Penner <penner@vaxxine.com> | 2011-03-02 23:09:32 +0000 |
|---|---|---|
| committer | Alvin Penner <penner@vaxxine.com> | 2011-03-02 23:09:32 +0000 |
| commit | 26398c7d4cdc563f17bfaa3a8ce29e02e53701d6 (patch) | |
| tree | 3ec500c439b388d307e6833e22df4967a8514e4f | |
| parent | Translations. Updated Indonesian translation, consider the latest inkscape.pot. (diff) | |
| download | inkscape-26398c7d4cdc563f17bfaa3a8ce29e02e53701d6.tar.gz inkscape-26398c7d4cdc563f17bfaa3a8ce29e02e53701d6.zip | |
convert recursion into loop (Bug 340123)
Fixed bugs:
- https://launchpad.net/bugs/340123
(bzr r10076)
| -rw-r--r-- | share/extensions/cspsubdiv.py | 36 |
1 files changed, 16 insertions, 20 deletions
diff --git a/share/extensions/cspsubdiv.py b/share/extensions/cspsubdiv.py index f05068df9..c34236afe 100644 --- a/share/extensions/cspsubdiv.py +++ b/share/extensions/cspsubdiv.py @@ -17,25 +17,21 @@ def cspsubdiv(csp,flat): subdiv(sp,flat) def subdiv(sp,flat,i=1): - p0 = sp[i-1][1] - p1 = sp[i-1][2] - p2 = sp[i][0] - p3 = sp[i][1] - - b = (p0,p1,p2,p3) - m = maxdist(b) - if m <= flat: - try: - subdiv(sp,flat,i+1) - except IndexError: - pass - else: - one, two = beziersplitatt(b,0.5) - sp[i-1][2] = one[1] - sp[i][0] = two[2] - p = [one[2],one[3],two[1]] - sp[i:1] = [p] - subdiv(sp,flat,i) - + while i < len(sp): + p0 = sp[i-1][1] + p1 = sp[i-1][2] + p2 = sp[i][0] + p3 = sp[i][1] + + b = (p0,p1,p2,p3) + m = maxdist(b) + if m <= flat: + i += 1 + else: + one, two = beziersplitatt(b,0.5) + sp[i-1][2] = one[1] + sp[i][0] = two[2] + p = [one[2],one[3],two[1]] + sp[i:1] = [p] # vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 fileencoding=utf-8 textwidth=99 |
