On 9/28/05, aaron@...749... <aaron@...749...> wrote:
I'm interested in working on perspective envelope and blends. They both fit the "path data manipulation" theme in which I am interested and with which I am somewhat familiar. They don't seem to me to be the really important things we need to push ourselves to get done, like SVGTiny compliance or huge and complicated codebase refactoring. But they are on the 1.0 wish list for at least one developer and numerous users.
From a vector artist viewpoint, they're much more important than Tiny
compliance, let alont codebase refactoring. With blends, you're no longer limited to gradients for doing things like shades, glows, complex-shaped color transitions etc. With perspective and curvilinear envelopes, we'll get into 3D and finally stop being shamefully behind Microsoft's "WordArt" :)
I have done a minimal amount of research into both subjects while working on effects. I've got one completed blend effect (interp.py) and one completed envelope type effect (summer's night). Envelope objects have been scoped out on the wiki http://wiki.inkscape.org/cgi-bin/wiki.pl?PerspectiveObject.
I wrote that. I'm still not happy that with this approach, we'll only be able to envelope paths (and not e.g. texts or rects without first converting to path), but I see no easy way to remove this limitation. Other than that, it should work fine and is (I think) not too difficult to implement. The problems with transforming/nodeediting objects within an envelope are there, but hey, for example Xara does not let you get into an envelope at all - you can only edit the objects inside by removing the envlope and then reapplying it. So I think this will work out nicely in the end.
For blends, the implementation will be similar: a <g> with two or more base paths as well as the phantom intermediate paths that are real from the SVG viewpoint but are not editable or even selectable from Inkscape viewpoint. These phantom paths are regenerated automatically, as each one remembers its two base paths and the interpolation parameter.
I'm afraid, however, that I don't know enough to be successful enough at the outset to keep motivated enough to actually finish either of these projects, because they seem to be rather large projects for my competency level and are code creation rather than tweaking what already exists.
This should not really be too difficult. I'll help you in any way I can. You can start with small steps and proceed gradually. Since your code will be limited to your own SPObject types, you won't risk breaking anything else :)
Would there be significant interest in gathering a few small teams of people to work on these features? Teams could consist of a couple of inexperienced coders like myself and one mentor who can assist in subdividing and prioritizing the task, and help out if we get stuck.
Yeah, I certainly volunteer :)
-- bulia byak Inkscape. Draw Freely. http://www.inkscape.org