diff Op.py @ 0:45b12307c695

Initial revision
author drewp
date Wed, 03 Jul 2002 09:37:57 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Op.py	Wed Jul 03 09:37:57 2002 +0000
@@ -0,0 +1,32 @@
+"""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)