diff options
| author | Alvin Penner <penner@vaxxine.com> | 2012-12-24 02:21:36 +0000 |
|---|---|---|
| committer | apenner <penner@vaxxine.com> | 2012-12-24 02:21:36 +0000 |
| commit | 2b08d8b3cc50015423e45effabdb43e71c59621a (patch) | |
| tree | 04ffedc3646bde9dcadc1c3ef89d0c4436f16e9a | |
| parent | Move some code from filter primitives to cairo-utils.cpp. Fix bug in lighting... (diff) | |
| download | inkscape-2b08d8b3cc50015423e45effabdb43e71c59621a.tar.gz inkscape-2b08d8b3cc50015423e45effabdb43e71c59621a.zip | |
extensions. function plotter. patch by ~suv for clip rectangle (Bug 492103)
Fixed bugs:
- https://launchpad.net/bugs/492103
(bzr r11977)
| -rw-r--r-- | share/extensions/funcplot.inx | 1 | ||||
| -rwxr-xr-x | share/extensions/funcplot.py | 15 |
2 files changed, 16 insertions, 0 deletions
diff --git a/share/extensions/funcplot.inx b/share/extensions/funcplot.inx index 8eaf33f01..58cf158ca 100644 --- a/share/extensions/funcplot.inx +++ b/share/extensions/funcplot.inx @@ -41,6 +41,7 @@ The constants pi and e are also available.</_param> <param name="fofx" type="string" _gui-text="Function:">exp(-x*x)</param> <param name="fponum" type="boolean" _gui-text="Calculate first derivative numerically">true</param> <param name="fpofx" type="string" _gui-text="First derivative:">x</param> + <param name="clip" type="boolean" _gui-text="Clip with rectangle">false</param> <param name="remove" type="boolean" _gui-text="Remove rectangle">true</param> <param name="drawaxis" type="boolean" _gui-text="Draw Axes">false</param> <param name="endpts" type="boolean" _gui-text="Add x-axis endpoints">false</param> diff --git a/share/extensions/funcplot.py b/share/extensions/funcplot.py index 08ac15dbb..7f8fdafe1 100755 --- a/share/extensions/funcplot.py +++ b/share/extensions/funcplot.py @@ -28,6 +28,7 @@ Changes: # standard library from math import * from random import * +from copy import deepcopy # local library import inkex import simplepath @@ -217,6 +218,10 @@ class FuncPlot(inkex.Effect): action="store", type="string", dest="fpofx", default="cos(x)", help="f'(x) for plotting") + self.OptionParser.add_option("--clip", + action="store", type="inkbool", + dest="clip", default=False, + help="If True, clip with copy of source rectangle") self.OptionParser.add_option("--remove", action="store", type="inkbool", dest="remove", default=True, @@ -293,6 +298,16 @@ class FuncPlot(inkex.Effect): # add path into SVG structure node.getparent().append(newpath) + # option whether to clip the path with rect or not. + if self.options.clip: + defs = self.xpathSingle('/svg:svg//svg:defs') + if defs == None: + defs = inkex.etree.SubElement(self.document.getroot(),inkex.addNS('defs','svg')) + clip = inkex.etree.SubElement(defs,inkex.addNS('clipPath','svg')) + clip.append(deepcopy(node)) + clipId = self.uniqueId('clipPath') + clip.set('id', clipId) + newpath.set('clip-path', 'url(#'+clipId+')') # option wether to remove the rectangle or not. if self.options.remove: node.getparent().remove(node) |
