Changes

1,716 bytes added ,  23:43, 6 April 2010
Line 19: Line 19:  
Create an icon for the new function. As a convention, its name should be the same as the function name in all lowercase letters. There should be two files: one for the working copy, and an exported "Plain SVG" copy. There names should be <functionname>.svg for the plain svg and <functionname>-inkscape.svg for the working copy.
 
Create an icon for the new function. As a convention, its name should be the same as the function name in all lowercase letters. There should be two files: one for the working copy, and an exported "Plain SVG" copy. There names should be <functionname>.svg for the plain svg and <functionname>-inkscape.svg for the working copy.
   −
3. Create node class.
+
==== Create node class ====
 +
Create a new file plotter/view/puzzletree/nodes/<functionname>.py.
 +
 
 +
In it place:
 +
<pre>
 +
from .simplenode import SimpleNode
 +
from gettext import gettext as _
 +
 
 +
 
 +
class FunctionName(SimpleNode):
 +
    """Node representing <some function>."""
 +
 
 +
    CLASS = "functionname"
 +
    background = SimpleNode.loadbackground("functionname.svg")
 +
    title = _("Function Name")
 +
    description = _(u"Enter a description of the function here.")
 +
 
 +
    def __call__(self, x):
 +
        """Calls the function... put a more descriptive comment here."""
 +
        return functionname(x)
 +
 
 +
 
 +
    def get_equation_string(self, variable):
 +
        """Returns a string to use this function in the Python parser."""
 +
        return "functionname(%s)" % variable
 +
</pre>
 +
 
 +
CLASS should be a unique identifier for the node class (the lowercase class name should work fine). This is used when saving to the journal to describe which nodes are used.
 +
 
 +
background should be loaded from the plain *.svg file created as an icon. Just give it the filename (not the full path).
 +
 
 +
title is shown above the description in the palette. It should reflect the common name for the function being added.
 +
 
 +
description is a longer description that gives more information about the function. Ideally, it should be understandable by those without advanced knowledge of Mathematics.
 +
 
 +
__call__ should return the value that the function would return for x. Additional modules may need to be imported in order to do this, depending on the function.
 +
 
 +
get_equation_string should return the string needed to apply the same function in the Python parse equation input. (NOTE: this may mean you'll need to add the function to the list of those available to the plotter.parse module.)
 +
 
 
4. Add to node list.
 
4. Add to node list.
  
12

edits