Mercurial > code > home > repos > light9
comparison flax/Node.py @ 110:490843093506
all of this stuff is super rough and not well thought out yet.
all of this stuff is super rough and not well thought out yet.
i'm just checking in so we have some stuff to work with for the
sprint tonight.
author | dmcc |
---|---|
date | Tue, 10 Jun 2003 10:31:57 +0000 |
parents | 45b12307c695 |
children | 7ccf1d10804b |
comparison
equal
deleted
inserted
replaced
109:ec82e1eea3c8 | 110:490843093506 |
---|---|
4 NoChange = "NoChange" | 4 NoChange = "NoChange" |
5 | 5 |
6 class NodeType: | 6 class NodeType: |
7 def __init__(self, iports=None, oports=None): | 7 def __init__(self, iports=None, oports=None): |
8 make_attributes_from_args('iports', 'oports') | 8 make_attributes_from_args('iports', 'oports') |
9 def process(self,iports,oports): | 9 def process(self): |
10 pass | 10 pass |
11 # TODO: handle NoChange stuff | 11 # TODO: handle NoChange stuff |
12 | 12 |
13 class AddNode(NodeType): | 13 class AddNode(NodeType): |
14 """Adds two nodes together""" | 14 """Adds two nodes together""" |
32 ports.out1 = val | 32 ports.out1 = val |
33 | 33 |
34 class FadeNode(NodeType): | 34 class FadeNode(NodeType): |
35 """Provides a UI scaler to let you fade a value""" | 35 """Provides a UI scaler to let you fade a value""" |
36 def __init__(self): | 36 def __init__(self): |
37 NodeType.__init__(self, iports={'in1' : Port(), | 37 NodeType.__init__(self, iports={'in1' : Port, |
38 'scale1' : Port()}, | 38 'scale1' : Port}, |
39 oports={'out1' : Port()}, | 39 oports={'out1' : Port}, |
40 def process(self, iports, oports): | 40 def process(self, ports): |
41 ports.out1 = ports.in1 * ports.scale1 | 41 ports.out1 = ports.in1 * ports.scale1 |
42 | 42 |
43 class FadeConstellation(Constellation): | 43 class FadeConstellation(Constellation): |
44 """This somehow describes the following: | 44 """This somehow describes the following: |
45 | 45 |
73 \ - - - - - - - - - - - -- - - / | 73 \ - - - - - - - - - - - -- - - / |
74 | | 74 | |
75 | out | 75 | out |
76 | | 76 | |
77 """ | 77 """ |
78 | |
79 Persistence | |
80 node instance saves: | |
81 node name, id, and such | |
82 input ports: | |
83 any port details | |
84 what the port connects to | |
85 values: | |
86 maybe UI.Scale level | |
87 maybe group contents | |
88 | |
89 | |
90 p=InputPort(node=self,minconns=1,maxconns=2) # an input port to this node | |
91 p.connect(othernode) | |
92 print p.connections() | |
93 p.connect(yetanother) | |
94 | |
95 op=OutputPort(node=self) # an output port | |
96 print op.connections() # lists all the nodes that call us an input node | |
97 op.connect(n) # calls n.connect(self) | |
98 | |
99 | |
100 | |
101 | |
102 Ports | |
103 Port: "scalar" | |
104 MultiPort: "array of Port" | |
105 ^ all wrong | |
106 | |
107 Ports II: | |
108 min/max number of connections | |
109 (failure to fit these numbers means port is "deactivated") | |
110 "Normal" ports are min=1, max=1 | |
111 "Multiports" are min=0, max=None | |
112 "Binary" ports are min=2, max=2 | |
113 oh yeah, there are two totally different types of ports | |
114 | |
115 Input ports: min/max numbers of connections | |
116 store current connections | |
117 Output ports: nothing | |
118 store nothing! | |
119 | |
120 fake node persistence for subtract node | |
121 | |
122 <!-- "my subtract" is a unique id --> | |
123 <!-- drew: there is no such thing as a subtract group --> | |
124 <node name="my subtract" type="math.Add"> | |
125 <inputs> | |
126 <port name="in1"> | |
127 <noderef name="node I"/> | |
128 <noderef name="node II"/> | |
129 </port> | |
130 </inputs> | |
131 <state> | |
132 </state> | |
133 | |
134 </node> | |
135 | |
136 | |
137 <node name="the group" type="group"> | |
138 | |
139 <!-- all of the port names of the group are being made up right | |
140 here- a group has no preset inputs or outputs--> | |
141 | |
142 <inputs> | |
143 <port name="group-in 1"> | |
144 <noderef name="node5"/> | |
145 <noderef name="node6"/> | |
146 </port> | |
147 </inputs> | |
148 | |
149 <state> | |
150 <children> | |
151 <noderef name="node3"> | |
152 <connect localPort="in1" groupPort="group-in1"/> | |
153 </noderef> | |
154 <noderef name="node4"> | |
155 <connect localPort="in1" groupPort="group-in1"/> | |
156 <connect localPort="out1" groupPort="theoutput"/> | |
157 </noderef> | |
158 </children> | |
159 | |
160 </state> | |
161 </node> | |
162 | |
163 <node name="preset value" type="source.Scalar"> | |
164 <!-- no inputs, node has output only --> | |
165 <state> | |
166 <value>8.3</value> | |
167 | |
168 <minvalue>0</minvalue> | |
169 <maxvalue>100</maxvalue> | |
170 | |
171 <gui> | |
172 <slider res=".1" height="200" bgcolor="red"/> | |
173 <priority>very high</priority> | |
174 <xpos>395</xpos> | |
175 <ypos>21</ypos> | |
176 </gui> | |
177 | |
178 </state> | |
179 | |
180 </node> |