summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlvin Penner <penner@vaxxine.com>2011-03-02 23:09:32 +0000
committerAlvin Penner <penner@vaxxine.com>2011-03-02 23:09:32 +0000
commit26398c7d4cdc563f17bfaa3a8ce29e02e53701d6 (patch)
tree3ec500c439b388d307e6833e22df4967a8514e4f
parentTranslations. Updated Indonesian translation, consider the latest inkscape.pot. (diff)
downloadinkscape-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.py36
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