On Sun, Mar 30, 2003 at 02:53:44PM -0800, Daniel Rogers wrote: > What is the difference between GeglOp's GList's of inputs and outputs > and GeglNode's Glist of inputs and outputs? GeglOp's list is a list of GeglData objects, which are the data being passed along the graph. GeglNode's input and output's lists are the lists of GeglNodes which are the sources and sinks for a particular node. Like in a compiler you might have different attributes passed along the graph (types, values, etc). The GeglOp's data lists are one example of attributes that are passed along the graph. > I would think that Node's would handle all the connectivness issues, not > Op's so should GeglOp get it's inputs and outputs from GeglNode? > It does in a way. The nth input GeglData for an Op will come from an output GeglData of the nth input Node (for the Op). Also you need a list of data inputs (in GeglOp) since there may be a conversion of the data needed before it can be used as input to the op. So you have a conversion that happens like this: Suppose A is an input of B. Then during validate_inputs, the following happens: Op A output(a GeglData from A's list of data_outputs in GeglOp) ----->Op B input (a GeglData from B's list of data_inputs in GeglOp) Here the output GeglData of OpA is either copied or converted (the arrow above) to the input GeglData of Op B (image conversion, scalar conversion, string to scalar, etc). I think the various passed data lists in GeglOp shouldnt be in GeglNode though, cause GeglNode just knows how to build a graph, not how data is passed along the graph. Calvin