Re: [Gegl-developer] generalized data inputs and outputs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Calvin Williamson wrote:
The purpose of a graph is to express algebraic relationships between
different data types.  This is where I have trouble finding examples of
where we would best be served by generalizing data inputs.  When would
you want to use this infrastructure to, say, add two scalars, or take
the dot product of two vectors.   You might use some kind of object to
generate your animation parameters, but you don't need all this
algebraic stuff to do that.



Im not sure what you are talking about when you say you
dont need all this "algebraic stuff". What exactly are
you referring to?

The execution graph can be thought of an algebraic statement about images. (let capital letters be images and lowercase be scalars).

f*Blend(A+B*C,A+(c+D))

can be broken down into an execution graph in gegl.

Thus, you can use the graph to represent algebraic relationships. It is the same reason why gcc breaks the C and C++ parsed file into tree.

If you are not representing algebraic relationships, the graph is overkill. Consider an animation system where you need to change some parameters every frame. Presumably you have some object that generates the parameter based on the frame number. If all you are doing is generating parameters with one object and setting parameters in another object, you are not doing anything that requires a full fledged graph. Since you are not algebraicly manipulating the parameters (which is the equivlent to passing them through the graph) you can achieve the same result by providing an alternate, simpler means of setting the parameters (like signals, as I suggested).

While using the graph to manipulate all parameters works, using only images as the sole datatype that is passed through the graph is far simpler and thus easier to achieve. We already have the signal system (since we get it for free with GObjects) and we can use that to set parameters that don't required the complication of a graph representation.

--
Dan


[Index of Archives]     [Yosemite News]     [Yosemite Photos]     [gtk]     [GIMP Users]     [KDE]     [Gimp's Home]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux