On Tue, 2010-09-07 at 12:05 +0200, Jasper van de Gronde wrote:
My current thinking is that it would probably be best to treat diffusion curves as a paint server, allowing people to assign color to nodes (that either coincide with existing nodes or are positioned somewhere on the path). The colors would be linearly interpolated along the path. A scheme like this would fit in well with the idea of expanding the functionality of the gradient tool and having a general color picker.
Unfortunately this would sort of limit the ability to blur boundaries to the point that it might not make any sense. But then again, maybe it's a mistake to try and integrate two separate concepts (blur and color transitions), even in the original paper these are treated quite separately (the blur values are diffused separately and then a spatially varying blur is applied).
Any thoughts or suggestions would be helpful.
Diffusion curves were discussed yesterday at the SVG working group meeting (along with mesh gradients and gradients along a path). There was in general a favorable response to there inclusion in the SVG2 spec provided a good method can be found for their implementation and their specification (and if there are no patent problems). At least one person on the SVG working group has done work on a trial implementation.
Some careful thought should be done on how diffusion curves can be specified in SVG so that what you do could be adapted easily if they make it into the spec. Your suggestion that diffusion curves be treated as a paint server matches what was discussed yesterday. As part of vector effects, partial paths will be supported so you could share paths between an object and diffusion curves via references.
BTW, some form of mesh gradients will almost certainly make it into the next spec.
Tav