view Op.py @ 43:2cd759c2b3c7

(21:29:34) dmcc: no need to have the E for effects (21:29:34) dmcc: no need to have the E for effects (21:29:48) drewp: oh yeah (21:29:52) drewp: feel free to take care of that
author dmcc
date Sun, 07 Jul 2002 12:31:18 +0000
parents 45b12307c695
children
line wrap: on
line source

"""each node type has an Op within it"""

class Op:
    """nodes can have several versions of their operation function.

    ops don't return anything! 
    """
    def __init__(self):
        """This should not be overridden without being called."""
        pass

    def inputschanged(self, input, output, stateaccess):
        """If you only define one op function body, make it this one. """
        pass
    
    def created(self, input, output, stateaccess):
        """This is called one time when the node is newly created. It's
        not called when the node instance is pickled/unpickled. Use this
        version to initialize state."""
        # an extra call to changed() should help the outputs get set
        # correctly before any real inputs-changed events come around
        # (assuming this method doesn't get overridden with a
        # specialized version)
        self.inputschanged(input, output, stateaccess)        

    def statechanged(self, input, output, stateaccess):
        '''State might have been changed by a user dragging a parameter or by
        a state being hcanged otherwise.'''
        self.inputschanged(input, output, stateaccess)        

    def clocked(self, input, output, stateaccess):
        self.inputschanged(input, output, stateaccess)