[Pipet Devel] Thoughts on Network/Composite Inputs and Outputs

Brad Chapman chapmanb at arches.uga.edu
Wed Jul 26 17:13:18 EDT 2000

Hey all;
    I've been doing a lot of thinking about how the Network/Composite 
loci deal with getting inputs and outputs. To summarize the situation 
right now (based on the last discussion we had on this):

Whenever a new node is added inside of a Composite Locus (or Network, 
for Overflow) all of the unconnected inputs and outputs are 
"inherited" by the parent Composite Locus, so that they can 
potentially be connected with other loci in the same level as the 
parent Composite Locus. This is the situation of things right now if 
you grab the latest Piper from CVS.

    Now that I've got this way implemented, however, I really don't 
like it :-<. There are a few problems I see with it:

1. The composite loci end up with a ton of NetInputs and NetOutputs 
(to use Overflow terminology), and I think this will make it really 
tough to see what NetInputs and NetOutputs go with which internal 
Loci, even when viewing the names of inputs and outputs is implimented.

2. Having been thinking more about it, it seems like this behavior 
isn't really what I would want as a default. It seems like that 90% of 
the time when I add a new locus I'm planning on connecting it to other 
loci in the same network. So, based on this we are doing a lot of 
extra work with adding and removing inputs for maybe 10% of the cases 
when an input or output will feed to the outside of a network. In 
addition, this behavior may be confusing to a user, who wouldn't 
expect to see inputs appearing and dissappearing randomly.

3. The situation gets messed up when you have a composite inside of 
another composite. Then if you add a new locus to the inner composite, 
the new inputs are inherited into that composite, and then since they 
aren't connected there, are then inherited again into the outer 

4. All of the above stuff makes this kind of a pain to maintain, and 
also slows things down quite a bit.

What I'd like to propose is that we change this behavior to be similar 
to that used in Overflow. A user would have to click on an input or 
output  and then specifically request that it be inherited to the 
parent locus. The user would then also supply a name for it (like in 
Overflow) and then this name would help associate the NetInput with 
the internal locus connector to which it is associated.

What do people think about this? Should I do it? Better suggestions? 
Defenders of the current way?


More information about the Pipet-Devel mailing list