diff flax/Node.py @ 166:7ccf1d10804b

lots more notes
author drewp
date Tue, 08 Jul 2003 09:19:10 +0000
parents 490843093506
children
line wrap: on
line diff
--- a/flax/Node.py	Tue Jul 08 09:18:47 2003 +0000
+++ b/flax/Node.py	Tue Jul 08 09:19:10 2003 +0000
@@ -6,7 +6,7 @@
 class NodeType:
     def __init__(self, iports=None, oports=None):
         make_attributes_from_args('iports', 'oports')
-    def process(self):
+    def process(self,iports,oports):
         pass
         # TODO: handle NoChange stuff
 
@@ -34,10 +34,10 @@
 class FadeNode(NodeType):
     """Provides a UI scaler to let you fade a value"""
     def __init__(self):
-        NodeType.__init__(self, iports={'in1' : Port, 
-                                        'scale1' : Port},
-                                oports={'out1' : Port},
-    def process(self, ports):
+        NodeType.__init__(self, iports={'in1' : Port(), 
+                                        'scale1' : Port()},
+                                oports={'out1' : Port()},
+    def process(self, iports, oports):
         ports.out1 = ports.in1 * ports.scale1 
 
 class FadeConstellation(Constellation):
@@ -75,3 +75,106 @@
       | out
       | 
     """
+
+Persistence
+node instance saves:
+    node name, id, and such
+    input ports:
+        any port details
+        what the port connects to
+    values:
+        maybe UI.Scale level
+        maybe group contents
+
+
+p=InputPort(node=self,minconns=1,maxconns=2) # an input port to this node
+p.connect(othernode)
+print p.connections()
+p.connect(yetanother)
+
+op=OutputPort(node=self) # an output port
+print op.connections() # lists all the nodes that call us an input node
+op.connect(n) # calls n.connect(self)
+
+
+
+        
+Ports
+    Port: "scalar"
+    MultiPort: "array of Port"
+    ^ all wrong
+
+    Ports II:
+        min/max number of connections
+           (failure to fit these numbers means port is "deactivated")
+        "Normal" ports are min=1, max=1
+        "Multiports" are min=0, max=None
+        "Binary" ports are min=2, max=2
+        oh yeah, there are two totally different types of ports
+
+        Input ports: min/max numbers of connections
+           store current connections
+        Output ports: nothing
+           store nothing!
+
+fake node persistence for subtract node
+
+<!-- "my subtract" is a unique id -->
+<!-- drew: there is no such thing as a subtract group -->
+<node name="my subtract" type="math.Add">
+  <inputs>
+    <port name="in1">
+       <noderef name="node I"/>
+       <noderef name="node II"/>
+    </port>
+  </inputs>
+  <state>
+  </state>
+    
+</node>
+
+
+<node name="the group" type="group">
+
+  <!-- all of the port names of the group are being made up right
+  here- a group has no preset inputs or outputs-->
+
+  <inputs>
+    <port name="group-in 1">
+      <noderef name="node5"/>
+      <noderef name="node6"/>
+    </port>
+  </inputs>
+  
+  <state>  
+    <children>
+      <noderef name="node3">
+        <connect localPort="in1" groupPort="group-in1"/>
+      </noderef>
+      <noderef name="node4">
+        <connect localPort="in1" groupPort="group-in1"/>
+        <connect localPort="out1" groupPort="theoutput"/>
+      </noderef>
+    </children>
+
+  </state>  
+</node>
+
+<node name="preset value" type="source.Scalar">
+  <!-- no inputs, node has output only -->
+  <state>
+    <value>8.3</value>
+
+    <minvalue>0</minvalue>
+    <maxvalue>100</maxvalue>
+    
+    <gui>
+      <slider res=".1" height="200" bgcolor="red"/>
+      <priority>very high</priority>
+      <xpos>395</xpos>
+      <ypos>21</ypos>
+    </gui>
+    
+  </state>
+
+</node>