"""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)