On 4/6/07, bulia byak <buliabyak@...155...> wrote:
Ok Bulia, I'm glad to hear that it is not difficult to create new parameterized object types by modifying cpp files and that you agree that such a capability is valuable. Requiring .cpp manipulations kind of limits the number of artists who are likely unleash their creativity in this arena however.
So I think the logical progression if you want to tap into the creativity out there would be to make a system such that new parameterized objects could separate components. As something like plugins or extensions. And preferably it wouldn't require any c++ coding.
-- Ok, so spirals and gear wheels etc are great and all. Nice and simple. But the concept of a parameterized object is very general. Think of it as a generic function. You give it a number and it gives you some paths. What happens in between could be *anything*. And of course it doesn't have to be just one number as input. For a rectangle right now now the numbers are things like x-corner radius and y-corner radius and the output is a path representing a rounded rectangle. But the relationship can be anything. You could have an 'interpolation object' for instance, where the input is a value between 0 and 1 and the output is a blend between two inputs. You could make a skeleton-based 2D human character where the input is joint angles and the output is a set of paths that define a 'nice' silhouette to go with those angles (there are various ways to do this from the 3D world by applying weighted combinations of the bone transforms to nearby vertexes).
Those things are useful by themselves just for creating flexible objects, but they become even more useful once you start animating things, at least if you allow any parameter to become a function of time.
You can also start to think of deformation and modification operations as things that operate on a base object according to some input parameters. For example a perspective transform is just a transformation with 8 (I think!) scalar inputs that define the transform. Such a transform can be applied to the underlying object and the parameters forgotten about, or the parameters can be kept and the transformation goes onto the underlying objects "modifier stack". That object + modifier combo can itself be thought of as just another parameterized object.
-- All this is probably way off future crazy talk, I know. But it helps to have some idea of where you'd like to go eventually. I was hopeful that the inkscape devs would be amenable to such ideas (or already planning such things themselves). If not then that's ok too. To be honest I'm really just trying to feel out how strong the development team behind inkscape really is, because it seems like a very well thought out tool, and the bits of implementation I've looked at seem nice, and folks on the lists have been really helpful so far too. It has all exceeded my expectations for the most part up to this point. If it really is backed by a solid dev team with good leadership then (and here's where the selfish motivation comes in) I think it could make a very nice platform for my future research endeavors. But if you guys and I don't see eye to eye on things like a basic vision for the future and basic usability concepts then I'm probably barking up the wrong tree, and better off sticking with my own half-assed vector drawing platform I wrote using AGG.
Either way I don't see me giving up inkscape as an end-user tool. It's quite nice :-) I'll definitely be using it for all my vector drawing needs for the forseeable future.
--bb