annotate flax/Node.py @ 15:c76b62eccdec

put **kw back in, they now go to the scale and can override the defaults. put **kw back in, they now go to the scale and can override the defaults. for our purposes, we probably want to edit the defaults so we don't have them in every call.
author dmcc
date Sun, 07 Jul 2002 06:18:40 +0000
parents 45b12307c695
children 490843093506
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')
45b12307c695 Initial revision
drewp
parents:
diff changeset
9 def process(self,iports,oports):
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):
45b12307c695 Initial revision
drewp
parents:
diff changeset
37 NodeType.__init__(self, iports={'in1' : Port(),
45b12307c695 Initial revision
drewp
parents:
diff changeset
38 'scale1' : Port()},
45b12307c695 Initial revision
drewp
parents:
diff changeset
39 oports={'out1' : Port()},
45b12307c695 Initial revision
drewp
parents:
diff changeset
40 def process(self, iports, oports):
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 """
45b12307c695 Initial revision
drewp
parents:
diff changeset
78
45b12307c695 Initial revision
drewp
parents:
diff changeset
79 Persistence
45b12307c695 Initial revision
drewp
parents:
diff changeset
80 node instance saves:
45b12307c695 Initial revision
drewp
parents:
diff changeset
81 node name, id, and such
45b12307c695 Initial revision
drewp
parents:
diff changeset
82 input ports:
45b12307c695 Initial revision
drewp
parents:
diff changeset
83 any port details
45b12307c695 Initial revision
drewp
parents:
diff changeset
84 what the port connects to
45b12307c695 Initial revision
drewp
parents:
diff changeset
85 values:
45b12307c695 Initial revision
drewp
parents:
diff changeset
86 maybe UI.Scale level
45b12307c695 Initial revision
drewp
parents:
diff changeset
87 maybe group contents
45b12307c695 Initial revision
drewp
parents:
diff changeset
88
45b12307c695 Initial revision
drewp
parents:
diff changeset
89
45b12307c695 Initial revision
drewp
parents:
diff changeset
90 p=InputPort(node=self,minconns=1,maxconns=2) # an input port to this node
45b12307c695 Initial revision
drewp
parents:
diff changeset
91 p.connect(othernode)
45b12307c695 Initial revision
drewp
parents:
diff changeset
92 print p.connections()
45b12307c695 Initial revision
drewp
parents:
diff changeset
93 p.connect(yetanother)
45b12307c695 Initial revision
drewp
parents:
diff changeset
94
45b12307c695 Initial revision
drewp
parents:
diff changeset
95 op=OutputPort(node=self) # an output port
45b12307c695 Initial revision
drewp
parents:
diff changeset
96 print op.connections() # lists all the nodes that call us an input node
45b12307c695 Initial revision
drewp
parents:
diff changeset
97 op.connect(n) # calls n.connect(self)
45b12307c695 Initial revision
drewp
parents:
diff changeset
98
45b12307c695 Initial revision
drewp
parents:
diff changeset
99
45b12307c695 Initial revision
drewp
parents:
diff changeset
100
45b12307c695 Initial revision
drewp
parents:
diff changeset
101
45b12307c695 Initial revision
drewp
parents:
diff changeset
102 Ports
45b12307c695 Initial revision
drewp
parents:
diff changeset
103 Port: "scalar"
45b12307c695 Initial revision
drewp
parents:
diff changeset
104 MultiPort: "array of Port"
45b12307c695 Initial revision
drewp
parents:
diff changeset
105 ^ all wrong
45b12307c695 Initial revision
drewp
parents:
diff changeset
106
45b12307c695 Initial revision
drewp
parents:
diff changeset
107 Ports II:
45b12307c695 Initial revision
drewp
parents:
diff changeset
108 min/max number of connections
45b12307c695 Initial revision
drewp
parents:
diff changeset
109 (failure to fit these numbers means port is "deactivated")
45b12307c695 Initial revision
drewp
parents:
diff changeset
110 "Normal" ports are min=1, max=1
45b12307c695 Initial revision
drewp
parents:
diff changeset
111 "Multiports" are min=0, max=None
45b12307c695 Initial revision
drewp
parents:
diff changeset
112 "Binary" ports are min=2, max=2
45b12307c695 Initial revision
drewp
parents:
diff changeset
113 oh yeah, there are two totally different types of ports
45b12307c695 Initial revision
drewp
parents:
diff changeset
114
45b12307c695 Initial revision
drewp
parents:
diff changeset
115 Input ports: min/max numbers of connections
45b12307c695 Initial revision
drewp
parents:
diff changeset
116 store current connections
45b12307c695 Initial revision
drewp
parents:
diff changeset
117 Output ports: nothing
45b12307c695 Initial revision
drewp
parents:
diff changeset
118 store nothing!
45b12307c695 Initial revision
drewp
parents:
diff changeset
119
45b12307c695 Initial revision
drewp
parents:
diff changeset
120 fake node persistence for subtract node
45b12307c695 Initial revision
drewp
parents:
diff changeset
121
45b12307c695 Initial revision
drewp
parents:
diff changeset
122 <!-- "my subtract" is a unique id -->
45b12307c695 Initial revision
drewp
parents:
diff changeset
123 <!-- drew: there is no such thing as a subtract group -->
45b12307c695 Initial revision
drewp
parents:
diff changeset
124 <node name="my subtract" type="math.Add">
45b12307c695 Initial revision
drewp
parents:
diff changeset
125 <inputs>
45b12307c695 Initial revision
drewp
parents:
diff changeset
126 <port name="in1">
45b12307c695 Initial revision
drewp
parents:
diff changeset
127 <noderef name="node I"/>
45b12307c695 Initial revision
drewp
parents:
diff changeset
128 <noderef name="node II"/>
45b12307c695 Initial revision
drewp
parents:
diff changeset
129 </port>
45b12307c695 Initial revision
drewp
parents:
diff changeset
130 </inputs>
45b12307c695 Initial revision
drewp
parents:
diff changeset
131 <state>
45b12307c695 Initial revision
drewp
parents:
diff changeset
132 </state>
45b12307c695 Initial revision
drewp
parents:
diff changeset
133
45b12307c695 Initial revision
drewp
parents:
diff changeset
134 </node>
45b12307c695 Initial revision
drewp
parents:
diff changeset
135
45b12307c695 Initial revision
drewp
parents:
diff changeset
136
45b12307c695 Initial revision
drewp
parents:
diff changeset
137 <node name="the group" type="group">
45b12307c695 Initial revision
drewp
parents:
diff changeset
138
45b12307c695 Initial revision
drewp
parents:
diff changeset
139 <!-- all of the port names of the group are being made up right
45b12307c695 Initial revision
drewp
parents:
diff changeset
140 here- a group has no preset inputs or outputs-->
45b12307c695 Initial revision
drewp
parents:
diff changeset
141
45b12307c695 Initial revision
drewp
parents:
diff changeset
142 <inputs>
45b12307c695 Initial revision
drewp
parents:
diff changeset
143 <port name="group-in 1">
45b12307c695 Initial revision
drewp
parents:
diff changeset
144 <noderef name="node5"/>
45b12307c695 Initial revision
drewp
parents:
diff changeset
145 <noderef name="node6"/>
45b12307c695 Initial revision
drewp
parents:
diff changeset
146 </port>
45b12307c695 Initial revision
drewp
parents:
diff changeset
147 </inputs>
45b12307c695 Initial revision
drewp
parents:
diff changeset
148
45b12307c695 Initial revision
drewp
parents:
diff changeset
149 <state>
45b12307c695 Initial revision
drewp
parents:
diff changeset
150 <children>
45b12307c695 Initial revision
drewp
parents:
diff changeset
151 <noderef name="node3">
45b12307c695 Initial revision
drewp
parents:
diff changeset
152 <connect localPort="in1" groupPort="group-in1"/>
45b12307c695 Initial revision
drewp
parents:
diff changeset
153 </noderef>
45b12307c695 Initial revision
drewp
parents:
diff changeset
154 <noderef name="node4">
45b12307c695 Initial revision
drewp
parents:
diff changeset
155 <connect localPort="in1" groupPort="group-in1"/>
45b12307c695 Initial revision
drewp
parents:
diff changeset
156 <connect localPort="out1" groupPort="theoutput"/>
45b12307c695 Initial revision
drewp
parents:
diff changeset
157 </noderef>
45b12307c695 Initial revision
drewp
parents:
diff changeset
158 </children>
45b12307c695 Initial revision
drewp
parents:
diff changeset
159
45b12307c695 Initial revision
drewp
parents:
diff changeset
160 </state>
45b12307c695 Initial revision
drewp
parents:
diff changeset
161 </node>
45b12307c695 Initial revision
drewp
parents:
diff changeset
162
45b12307c695 Initial revision
drewp
parents:
diff changeset
163 <node name="preset value" type="source.Scalar">
45b12307c695 Initial revision
drewp
parents:
diff changeset
164 <!-- no inputs, node has output only -->
45b12307c695 Initial revision
drewp
parents:
diff changeset
165 <state>
45b12307c695 Initial revision
drewp
parents:
diff changeset
166 <value>8.3</value>
45b12307c695 Initial revision
drewp
parents:
diff changeset
167
45b12307c695 Initial revision
drewp
parents:
diff changeset
168 <minvalue>0</minvalue>
45b12307c695 Initial revision
drewp
parents:
diff changeset
169 <maxvalue>100</maxvalue>
45b12307c695 Initial revision
drewp
parents:
diff changeset
170
45b12307c695 Initial revision
drewp
parents:
diff changeset
171 <gui>
45b12307c695 Initial revision
drewp
parents:
diff changeset
172 <slider res=".1" height="200" bgcolor="red"/>
45b12307c695 Initial revision
drewp
parents:
diff changeset
173 <priority>very high</priority>
45b12307c695 Initial revision
drewp
parents:
diff changeset
174 <xpos>395</xpos>
45b12307c695 Initial revision
drewp
parents:
diff changeset
175 <ypos>21</ypos>
45b12307c695 Initial revision
drewp
parents:
diff changeset
176 </gui>
45b12307c695 Initial revision
drewp
parents:
diff changeset
177
45b12307c695 Initial revision
drewp
parents:
diff changeset
178 </state>
45b12307c695 Initial revision
drewp
parents:
diff changeset
179
45b12307c695 Initial revision
drewp
parents:
diff changeset
180 </node>