summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsu_v <suv-sf@users.sourceforge.net>2015-10-11 06:45:15 +0000
committer~suv <suv-sf@users.sourceforge.net>2015-10-11 06:45:15 +0000
commitfc8d6dbbd964ddb260286e5af7f0a1fb05a737e3 (patch)
tree73e78e721ad6837779a79cdfdce3a3f3e02f6ab9
parentAdd buttons for some side/corner mesh opeartions. (diff)
downloadinkscape-fc8d6dbbd964ddb260286e5af7f0a1fb05a737e3.tar.gz
inkscape-fc8d6dbbd964ddb260286e5af7f0a1fb05a737e3.zip
Extensions. Random Tree: optionally omit redundant segments (bug #1500124)
Fixed bugs: - https://launchpad.net/bugs/1500124 (bzr r14403)
-rw-r--r--share/extensions/rtree.inx1
-rwxr-xr-xshare/extensions/rtree.py17
2 files changed, 14 insertions, 4 deletions
diff --git a/share/extensions/rtree.inx b/share/extensions/rtree.inx
index 5fcac5560..8f6baee7d 100644
--- a/share/extensions/rtree.inx
+++ b/share/extensions/rtree.inx
@@ -6,6 +6,7 @@
<dependency type="executable" location="extensions">inkex.py</dependency>
<param name="size" type="float" min="0.0" max="1000.0" _gui-text="Initial size:">100.0</param>
<param name="minimum" type="float" min="0.0" max="500.0" _gui-text="Minimum size:">40.0</param>
+ <param name="pentoggle" type="boolean" _gui-text="Omit redundant segments" _gui-description="Lift pen for backward steps">false</param>
<effect>
<object-type>all</object-type>
<effects-menu>
diff --git a/share/extensions/rtree.py b/share/extensions/rtree.py
index db677d0d5..7123beb1e 100755
--- a/share/extensions/rtree.py
+++ b/share/extensions/rtree.py
@@ -1,6 +1,7 @@
#!/usr/bin/env python
'''
Copyright (C) 2005 Aaron Spike, aaron@ekips.org
+Copyright (C) 2015 su_v, suv-sf@users.sf.net
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -18,19 +19,23 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
'''
import inkex, simplestyle, pturtle, random
-def rtree(turtle, size, min):
+def rtree(turtle, size, min, pt=False):
if size < min:
return
turtle.fd(size)
turn = random.uniform(20, 40)
turtle.lt(turn)
- rtree(turtle, size*random.uniform(0.5,0.9), min)
+ rtree(turtle, size*random.uniform(0.5,0.9), min, pt)
turtle.rt(turn)
turn = random.uniform(20, 40)
turtle.rt(turn)
- rtree(turtle, size*random.uniform(0.5,0.9), min)
+ rtree(turtle, size*random.uniform(0.5,0.9), min, pt)
turtle.lt(turn)
+ if pt:
+ turtle.pu()
turtle.bk(size)
+ if pt:
+ turtle.pd()
class RTreeTurtle(inkex.Effect):
def __init__(self):
@@ -43,6 +48,10 @@ class RTreeTurtle(inkex.Effect):
action="store", type="float",
dest="minimum", default=4.0,
help="minimum branch size")
+ self.OptionParser.add_option("--pentoggle",
+ action="store", type="inkbool",
+ dest="pentoggle", default=False,
+ help="Lift pen for backward steps")
def effect(self):
self.options.size = self.unittouu(str(self.options.size) + 'px')
self.options.minimum = self.unittouu(str(self.options.minimum) + 'px')
@@ -54,7 +63,7 @@ class RTreeTurtle(inkex.Effect):
t.pu()
t.setpos(self.view_center)
t.pd()
- rtree(t, self.options.size, self.options.minimum)
+ rtree(t, self.options.size, self.options.minimum, self.options.pentoggle)
attribs = {'d':t.getPath(),'style':simplestyle.formatStyle(s)}
inkex.etree.SubElement(self.current_layer, inkex.addNS('path','svg'), attribs)