On Sun, 2006-08-20 at 18:40 -0400, bulia byak wrote:
On 8/19/06, Jon Phillips <jon@...235...> wrote:
On Fri, 2006-08-11 at 15:39 -0400, yipdw wrote:
I think the feature being requested involves being able to create one part of the pattern and have Inkscape create the rest using symmetry.
Something like Blender's Mirror modifier, in which edits you make to the mesh are mirrored across a particular axis, but adapted for 2D and (maybe) more general.
- David
Is there a feature request for this? This would be an awesome feature. If there isn't an RFE, could you file one for this and reply with the URL...I will add my 10cents then...
Jon, you seem to have missed the entire discussion where it was shown that such a feature has already exists in Inkscape.
Sorry for sounding grumpy, but it really depresses me when people fail to even notice something I've put so much work into (i.e. the clone tiler).
Heya, after trying to use this effectively, I realized that what would be ideal is to speed up the on-canvas update of clones to gain the functionality I seek and what I think the original question in this thread is about.
Bulia, the work you have done is awesome...let me reiterate that and that everybody knows you rule.
Anyhow, I wonder what we could do to speed up the update on-screen so that when dragging a node, the update would appear on the clones as well in realtime. This would be so mind-blowing and is what would really make this feature dynamic, not to mention really allow one to actively see what they are doing when dragging nodes affecting clones...realtime feedback!
So, in my effort to put code where my mouth is I looked into this, added the required functionality so that when editing a node, the clones update in realtime.
I added some code to knot.cpp in:
static int sp_knot_handler(SPCanvasItem *item, GdkEvent *event, SPKnot *knot);
I added an emitter to 'case GDK_MOTION_NOTIFY:' so that clones are updated on dragging of nodes and not just when the mouse is released on dragging.
However, the issue with doing this is that there are too many signals emitted and thus too many updates to redraw. Generally, this makes node editing visually laggy. This is especially noticeable while dragging node(s) quickly on the canvas.
Thus, my question to you and others is what would be a good approach for only allowing a certain number of updates? In this instance, I think it would be best to add code in the function I listed above to only allow a certain amount of signals to be emitted per second in order to appear realtime, but not to appear laggy (nor unnecessarily require too much processing).
What do you and others think? Is there code in the codebase to look at as example, or elsewhere?
With this pseudo-realtime update and using the reflection clone tile, I can easily draw a face in realtime with update across an X-axis of symmetry. Also, I can in realtime create some pretty trippy patterns. This is mega-useful, I just want to get some opinions before finishing and committing this because at present it will be too much of a slowdown.
Jon