0
|
1 """each node type has an Op within it"""
|
|
2
|
|
3 class Op:
|
|
4 """nodes can have several versions of their operation function.
|
|
5
|
|
6 ops don't return anything!
|
|
7 """
|
|
8 def __init__(self):
|
|
9 """This should not be overridden without being called."""
|
|
10 pass
|
|
11
|
|
12 def inputschanged(self, input, output, stateaccess):
|
|
13 """If you only define one op function body, make it this one. """
|
|
14 pass
|
|
15
|
|
16 def created(self, input, output, stateaccess):
|
|
17 """This is called one time when the node is newly created. It's
|
|
18 not called when the node instance is pickled/unpickled. Use this
|
|
19 version to initialize state."""
|
|
20 # an extra call to changed() should help the outputs get set
|
|
21 # correctly before any real inputs-changed events come around
|
|
22 # (assuming this method doesn't get overridden with a
|
|
23 # specialized version)
|
|
24 self.inputschanged(input, output, stateaccess)
|
|
25
|
|
26 def statechanged(self, input, output, stateaccess):
|
|
27 '''State might have been changed by a user dragging a parameter or by
|
|
28 a state being hcanged otherwise.'''
|
|
29 self.inputschanged(input, output, stateaccess)
|
|
30
|
|
31 def clocked(self, input, output, stateaccess):
|
|
32 self.inputschanged(input, output, stateaccess)
|