Hi!


>See https://bugs.launchpad.net/inkscape/+bug/304450/comments/3.

A quick answer about lpe transforms:
Of course we somehow need to keep track of all transforms. What I suggest is the following:
--
Define a new object attribute where lpe can register a transform (notice this attribute belongs to the objects carrying the lpe, not the lpe itself). These transform represent the "offset transform" between the object and the lpe.

Now, when transforming an object carrying an lpe, the new transform is applied to all transforms in this attribute instead of all the lpe parameters. At render time, the lpe first updates it's parameters according to the relevant transform, and then performs the effect.
--
This solution is very similar to what we're doing now: the difference is only a matter of *when* you transform lpe parameters (on the fly, or at render time). I don't think groups cause more trouble than in all other situations. I think it is a better solution than adding a "transform-lpe" in the stack, like I suggested before.

As for user finding shared lpe awkward, you might be right, but this should only affect the default behaviour. Although duplicating (objects, gradients, filters, lpes, others?...) is more straightforward than cloning, having the possibility to clone often makes a huge difference. Think of "styles" for instance, which are a kind of fill/stroke cloning (and unfortunately not supported yet). If sharing does not make sens for some lpes, it does for other, like sketch or pattern along path, which are kind of stroke styles.
So shared lpe should not be forbidden a priori. For clarity, we could show the number of users of a given element, and provide buttons to make a clone independant wherever appropriate (in gradients, filters, lpe dialogs).

forgot in that discussion is the possibility of always storing the
transform matrix in a path with an LPE (it's just a pref setting atm).
If people want that, then turn off/on the preference and you're done I
think. (prefs -> transforms -> store transf.: preserved)

It's not the same as what I suggest, since different lpe cannot have different transforms.
 
If one would want sharing of LPE parameters, a much better option would
be to implement something where the value of an LPE parameter can be
defined to point to something global.

Wow!  that would be great. This is not lpe specific: it would be great to be able to link the color to the radius of a circle or whatever...
For lpes like sketch for instace, this is not handy at all... while sketch should be considered as a 'stroke style', and hence easily shared.


Bulia wrote:
> I think something like that was planned from the beginning.
> For example, a true variable width stroke - not just
> triangle- or ellipse-shaped - would have to store its own set
> of distance/width pairs, unique for each path.


I think bulia means the data defining the width of the path is path specific. An lpe allowing the user to set the witdth by hand could not be shared, while it could contain also some global parameters we could be interested in sharing (shape of the ends for instance?). The object itself seems to be the right place where to store the object specific width data.


Cheers. jfb.