annotate flax/Node.py @ 2369:4a385c26402f

rm some unused 3rdparty code
author drewp@bigasterisk.com
date Mon, 05 Jun 2023 17:36:19 -0700
parents 7ccf1d10804b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
45b12307c695 Initial revision
drewp
parents:
diff changeset
1 # super rough code
45b12307c695 Initial revision
drewp
parents:
diff changeset
2
45b12307c695 Initial revision
drewp
parents:
diff changeset
3 # The magic value
45b12307c695 Initial revision
drewp
parents:
diff changeset
4 NoChange = "NoChange"
45b12307c695 Initial revision
drewp
parents:
diff changeset
5
45b12307c695 Initial revision
drewp
parents:
diff changeset
6 class NodeType:
45b12307c695 Initial revision
drewp
parents:
diff changeset
7 def __init__(self, iports=None, oports=None):
45b12307c695 Initial revision
drewp
parents:
diff changeset
8 make_attributes_from_args('iports', 'oports')
166
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
9 def process(self,iports,oports):
0
45b12307c695 Initial revision
drewp
parents:
diff changeset
10 pass
45b12307c695 Initial revision
drewp
parents:
diff changeset
11 # TODO: handle NoChange stuff
45b12307c695 Initial revision
drewp
parents:
diff changeset
12
45b12307c695 Initial revision
drewp
parents:
diff changeset
13 class AddNode(NodeType):
45b12307c695 Initial revision
drewp
parents:
diff changeset
14 """Adds two nodes together"""
45b12307c695 Initial revision
drewp
parents:
diff changeset
15 def __init__(self):
45b12307c695 Initial revision
drewp
parents:
diff changeset
16 NodeType.__init__(self, iports={'in1' : Port, 'in2' : Port},
45b12307c695 Initial revision
drewp
parents:
diff changeset
17 oports={'out1' : Port})
45b12307c695 Initial revision
drewp
parents:
diff changeset
18 def process(self, ports):
45b12307c695 Initial revision
drewp
parents:
diff changeset
19 ports.out1 = ports.in1 + ports.in2
45b12307c695 Initial revision
drewp
parents:
diff changeset
20
45b12307c695 Initial revision
drewp
parents:
diff changeset
21 class SumNode(NodeType):
45b12307c695 Initial revision
drewp
parents:
diff changeset
22 """Adds any number of nodes together"""
45b12307c695 Initial revision
drewp
parents:
diff changeset
23 def __init__(self, empty_val=0):
45b12307c695 Initial revision
drewp
parents:
diff changeset
24 NodeType.__init__(self, iports={'in1' : MultiPort},
45b12307c695 Initial revision
drewp
parents:
diff changeset
25 oports={'out1' : Port})
45b12307c695 Initial revision
drewp
parents:
diff changeset
26 self.empty_val = 0
45b12307c695 Initial revision
drewp
parents:
diff changeset
27 def process(self, ports):
45b12307c695 Initial revision
drewp
parents:
diff changeset
28 val = self.empty_val
45b12307c695 Initial revision
drewp
parents:
diff changeset
29 for p in ports.in1:
45b12307c695 Initial revision
drewp
parents:
diff changeset
30 val += p
45b12307c695 Initial revision
drewp
parents:
diff changeset
31
45b12307c695 Initial revision
drewp
parents:
diff changeset
32 ports.out1 = val
45b12307c695 Initial revision
drewp
parents:
diff changeset
33
45b12307c695 Initial revision
drewp
parents:
diff changeset
34 class FadeNode(NodeType):
45b12307c695 Initial revision
drewp
parents:
diff changeset
35 """Provides a UI scaler to let you fade a value"""
45b12307c695 Initial revision
drewp
parents:
diff changeset
36 def __init__(self):
166
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
37 NodeType.__init__(self, iports={'in1' : Port(),
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
38 'scale1' : Port()},
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
39 oports={'out1' : Port()},
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
40 def process(self, iports, oports):
0
45b12307c695 Initial revision
drewp
parents:
diff changeset
41 ports.out1 = ports.in1 * ports.scale1
45b12307c695 Initial revision
drewp
parents:
diff changeset
42
45b12307c695 Initial revision
drewp
parents:
diff changeset
43 class FadeConstellation(Constellation):
45b12307c695 Initial revision
drewp
parents:
diff changeset
44 """This somehow describes the following:
45b12307c695 Initial revision
drewp
parents:
diff changeset
45
45b12307c695 Initial revision
drewp
parents:
diff changeset
46 [ ] [ UI.Scale ]
45b12307c695 Initial revision
drewp
parents:
diff changeset
47 | |
45b12307c695 Initial revision
drewp
parents:
diff changeset
48 | in | scale
45b12307c695 Initial revision
drewp
parents:
diff changeset
49 | ____ /
45b12307c695 Initial revision
drewp
parents:
diff changeset
50 | |
45b12307c695 Initial revision
drewp
parents:
diff changeset
51 [ FadeNode ]
45b12307c695 Initial revision
drewp
parents:
diff changeset
52 |
45b12307c695 Initial revision
drewp
parents:
diff changeset
53 | out
45b12307c695 Initial revision
drewp
parents:
diff changeset
54 |
45b12307c695 Initial revision
drewp
parents:
diff changeset
55 [ ]
45b12307c695 Initial revision
drewp
parents:
diff changeset
56
45b12307c695 Initial revision
drewp
parents:
diff changeset
57 Maybe this is a group (I like this more):
45b12307c695 Initial revision
drewp
parents:
diff changeset
58
45b12307c695 Initial revision
drewp
parents:
diff changeset
59 |
45b12307c695 Initial revision
drewp
parents:
diff changeset
60 | in
45b12307c695 Initial revision
drewp
parents:
diff changeset
61 | FadeGroup
45b12307c695 Initial revision
drewp
parents:
diff changeset
62 - - - - - - - - - - - - -- - -
45b12307c695 Initial revision
drewp
parents:
diff changeset
63 | | |
45b12307c695 Initial revision
drewp
parents:
diff changeset
64 | [ UI.Scale ]
45b12307c695 Initial revision
drewp
parents:
diff changeset
65 | | | |
45b12307c695 Initial revision
drewp
parents:
diff changeset
66 | in | scale
45b12307c695 Initial revision
drewp
parents:
diff changeset
67 | | ____ / |
45b12307c695 Initial revision
drewp
parents:
diff changeset
68 | |
45b12307c695 Initial revision
drewp
parents:
diff changeset
69 | [ FadeNode ] |
45b12307c695 Initial revision
drewp
parents:
diff changeset
70 |
45b12307c695 Initial revision
drewp
parents:
diff changeset
71 | | out |
45b12307c695 Initial revision
drewp
parents:
diff changeset
72 |
45b12307c695 Initial revision
drewp
parents:
diff changeset
73 \ - - - - - - - - - - - -- - - /
45b12307c695 Initial revision
drewp
parents:
diff changeset
74 |
45b12307c695 Initial revision
drewp
parents:
diff changeset
75 | out
45b12307c695 Initial revision
drewp
parents:
diff changeset
76 |
45b12307c695 Initial revision
drewp
parents:
diff changeset
77 """
166
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
78
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
79 Persistence
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
80 node instance saves:
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
81 node name, id, and such
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
82 input ports:
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
83 any port details
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
84 what the port connects to
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
85 values:
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
86 maybe UI.Scale level
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
87 maybe group contents
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
88
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
89
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
90 p=InputPort(node=self,minconns=1,maxconns=2) # an input port to this node
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
91 p.connect(othernode)
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
92 print p.connections()
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
93 p.connect(yetanother)
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
94
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
95 op=OutputPort(node=self) # an output port
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
96 print op.connections() # lists all the nodes that call us an input node
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
97 op.connect(n) # calls n.connect(self)
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
98
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
99
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
100
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
101
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
102 Ports
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
103 Port: "scalar"
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
104 MultiPort: "array of Port"
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
105 ^ all wrong
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
106
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
107 Ports II:
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
108 min/max number of connections
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
109 (failure to fit these numbers means port is "deactivated")
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
110 "Normal" ports are min=1, max=1
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
111 "Multiports" are min=0, max=None
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
112 "Binary" ports are min=2, max=2
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
113 oh yeah, there are two totally different types of ports
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
114
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
115 Input ports: min/max numbers of connections
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
116 store current connections
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
117 Output ports: nothing
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
118 store nothing!
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
119
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
120 fake node persistence for subtract node
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
121
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
122 <!-- "my subtract" is a unique id -->
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
123 <!-- drew: there is no such thing as a subtract group -->
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
124 <node name="my subtract" type="math.Add">
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
125 <inputs>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
126 <port name="in1">
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
127 <noderef name="node I"/>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
128 <noderef name="node II"/>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
129 </port>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
130 </inputs>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
131 <state>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
132 </state>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
133
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
134 </node>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
135
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
136
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
137 <node name="the group" type="group">
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
138
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
139 <!-- all of the port names of the group are being made up right
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
140 here- a group has no preset inputs or outputs-->
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
141
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
142 <inputs>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
143 <port name="group-in 1">
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
144 <noderef name="node5"/>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
145 <noderef name="node6"/>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
146 </port>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
147 </inputs>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
148
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
149 <state>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
150 <children>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
151 <noderef name="node3">
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
152 <connect localPort="in1" groupPort="group-in1"/>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
153 </noderef>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
154 <noderef name="node4">
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
155 <connect localPort="in1" groupPort="group-in1"/>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
156 <connect localPort="out1" groupPort="theoutput"/>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
157 </noderef>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
158 </children>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
159
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
160 </state>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
161 </node>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
162
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
163 <node name="preset value" type="source.Scalar">
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
164 <!-- no inputs, node has output only -->
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
165 <state>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
166 <value>8.3</value>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
167
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
168 <minvalue>0</minvalue>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
169 <maxvalue>100</maxvalue>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
170
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
171 <gui>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
172 <slider res=".1" height="200" bgcolor="red"/>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
173 <priority>very high</priority>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
174 <xpos>395</xpos>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
175 <ypos>21</ypos>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
176 </gui>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
177
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
178 </state>
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
179
7ccf1d10804b lots more notes
drewp
parents: 110
diff changeset
180 </node>