tileable patterns
Inkscape is really cool but there's one feature that I'd like to se, either as a plugin or part of inkscape and that is the ability to easily create tileable patterns. Given that svg supports using SVG files as patterns this would be beneficial to plenty of people.
I envisage some kind of tileable mode where anything you move beyond a given side of the document appears automatically on the opposite side. This way you could preview your tile while creating it
Thanks!
I envisage some kind of tileable mode where anything you move beyond a given side of the document appears automatically on the opposite side. This way you could preview your tile while creating it
Check the help - Inkscape has a "pattern fill" (I think, from memory) - it works just fine.
D. --
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
Donn wrote:
I envisage some kind of tileable mode where anything you move beyond a given side of the document appears automatically on the opposite side. This way you could preview your tile while creating it
Check the help - Inkscape has a "pattern fill" (I think, from memory) - it works just fine.
D.
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da... _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
yeah, right now if you want to create a tileable pattern you have to keep exporting your work just to check if it tiles ok. It would be nice if you could work with a tiled display mode to make the creation of tiles easier
On 11/08/06, yipdw <yipdw1@...400...> 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
Donn wrote:
I envisage some kind of tileable mode where anything you move beyond a given side of the document appears automatically on the opposite side. This way you could preview your tile while creating it
Check the help - Inkscape has a "pattern fill" (I think, from memory) - it works just fine.
D.
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da... _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da... _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
What you are describing is called Edit > Clone > Create Tiled Clones. It's been there for several releases already.
On 8/11/06, none none <lots.of.mailing.lists@...400...> wrote:
yeah, right now if you want to create a tileable pattern you have to keep exporting your work just to check if it tiles ok. It would be nice if you could work with a tiled display mode to make the creation of tiles easier
On 11/08/06, yipdw <yipdw1@...400...> 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
Donn wrote:
I envisage some kind of tileable mode where anything you move beyond a given side of the document appears automatically on the opposite side. This way you could preview your tile while creating it
Check the help - Inkscape has a "pattern fill" (I think, from memory) - it works just fine.
D.
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da... _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da... _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da... _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Hi every one:
El Sábado, 12 de Agosto de 2006 05:13, bulia byak escribió: What you are describing is called Edit > Clone > Create Tiled Clones. It's been there for several releases already.
Sorry Bulia, but you are not getting the point, I think.
A tileable pattern is not just a pattern that you tile, is a piece of image that once tiled you cannot notice where does one tile finnishes and where starts another.
http://www.squidfingers.com/patterns/
They are complex patterns, not just chessboard like patterns.
Designers make them by extending the image from the right to enter from the left and the top from the bottom so the designer is the one that makes the pattern tileable, not the software (very bad explained :) see second link).
The software helps for this task. He is asking for an icon view like view (again) to check the pattern being designed is ***seamless*** tileable.
See an example of the technique: http://veerle.duoh.com/index.php/blog/comments/creating_patterns_in_photosho... In the screenshots you can see that the designer mirrors left-right and top-bottom elements so the borders are not recognised later when tiled. None.none wants Inkscape to simulte the mirroring or something like that, not sure how to exactly Inkscape can help in this task.
Am I right, none.none? I personally agree with his or her feature request.
Yours: Néstor
On 8/11/06, none none <lots.of.mailing.lists@...400...> wrote:
yeah, right now if you want to create a tileable pattern you have to keep exporting your work just to check if it tiles ok. It would be nice if you could work with a tiled display mode to make the creation of tiles easier
On 11/08/06, yipdw <yipdw1@...400...> 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
Donn wrote:
I envisage some kind of tileable mode where anything you move beyond a given side of the document appears automatically on the opposite side. This way you could preview your tile while creating it
Check the help - Inkscape has a "pattern fill" (I think, from memory)
- it works just fine.
D.
---- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da... 642 _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
-- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da... 2 _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da... _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
On 12/08/06, n3storm <nestordiaz@...207...> wrote:
Hi every one:
El Sábado, 12 de Agosto de 2006 05:13, bulia byak escribió: What you are describing is called Edit > Clone > Create Tiled Clones. It's been there for several releases already.
cloned tiles is close but no cigar.
Sorry Bulia, but you are not getting the point, I think.
A tileable pattern is not just a pattern that you tile, is a piece of image that once tiled you cannot notice where does one tile finnishes and where starts another.
thats exactly what I'm trying to achieve but right now its impossible in inkscape
They are complex patterns, not just chessboard like patterns.
Designers make them by extending the image from the right to enter from the left and the top from the bottom so the designer is the one that makes the pattern tileable, not the software (very bad explained :) see second link).
The software helps for this task. He is asking for an icon view like view (again) to check the pattern being designed is ***seamless*** tileable.
See an example of the technique: http://veerle.duoh.com/index.php/blog/comments/creating_patterns_in_photosho... In the screenshots you can see that the designer mirrors left-right and top-bottom elements so the borders are not recognised later when tiled. None.none wants Inkscape to simulte the mirroring or something like that, not sure how to exactly Inkscape can help in this task.
Am I right, none.none? I personally agree with his or her feature request.
yeah. one way to think of it is this:
I want a mode where every object created automatically gets 4 linked clones which are translated as follows: (-100% DOCUMENT(not object) width, 0) (+100% document width, 0) (0, -100% document height) (0, +100% document height)
does that make more sense?
Yours: Néstor
On 8/11/06, none none <lots.of.mailing.lists@...400...> wrote:
yeah, right now if you want to create a tileable pattern you have to keep exporting your work just to check if it tiles ok. It would be nice if you could work with a tiled display mode to make the creation of tiles easier
On 11/08/06, yipdw <yipdw1@...400...> 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
Donn wrote:
I envisage some kind of tileable mode where anything you move beyond a given side of the document appears automatically on the opposite side. This way you could preview your tile while creating it
Check the help - Inkscape has a "pattern fill" (I think, from memory)
- it works just fine.
D.
---- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da... 642 _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
-- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da... 2 _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da... _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
-- Néstor Díaz
Diseño y Diversion www.barriolinux.net
On 8/12/06, none none <lots.of.mailing.lists@...400...> wrote:
thats exactly what I'm trying to achieve but right now its impossible in inkscape
Oh come on. Show me ANY pattern and I'll do it in Inkscape in 15 minutes. Want a bet?
I want a mode where every object created automatically gets 4 linked clones which are translated as follows: (-100% DOCUMENT(not object) width, 0) (+100% document width, 0) (0, -100% document height) (0, +100% document height)
That's the simplest P1 symmetry in clone tiler. Just create a group from your objects, clip it by a rectangle if needed, and then clone-tile the group. Easy as pie.
Here you go, a seamless pattern made in less than 5 minutes with clone tiler. I used a rounded rectangle for clipping so that you can see where the tiles meet.
bulia byak wrote:
Here you go, a seamless pattern made in less than 5 minutes with clone tiler. I used a rounded rectangle for clipping so that you can see where the tiles meet.
This isn't quite seemless. I don't need the rounded rectangle to see the edges. Bulia, you have much clone tiler fu. You should write a nice tutorial.
I think there is a disconnect in this discussion. Now I haven't tried it, but to my knowledge misses some things that are very important. When your spashes reach the edge of the pattern you must make a copy and attempt to align them perfectly at the edge. This is very difficult. A tool meant specificly for creating seamless textures would know when an object was beyond the bbox of the pattern and create and position the opposing clone for you.
Aaron Spike
On 8/12/06, Aaron Spike <aaron@...749...> wrote:
bulia byak wrote:
Here you go, a seamless pattern made in less than 5 minutes with clone tiler. I used a rounded rectangle for clipping so that you can see where the tiles meet.
This isn't quite seemless. I don't need the rounded rectangle to see the edges.
As I said, it was done in less than 5 minutes. I didn't even zoom in once to get better precision. It's very easy to make the seams perfect if you have a few more minutes to spare.
I think there is a disconnect in this discussion. Now I haven't tried it, but to my knowledge misses some things that are very important. When your spashes reach the edge of the pattern you must make a copy and attempt to align them perfectly at the edge. This is very difficult.
This is not difficult at all. You need to adjust only one dimension, not both. Just use arrows and alt+arrows.
A tool meant specificly for creating seamless textures would know when an object was beyond the bbox of the pattern and create and position the opposing clone for you.
Heh, I think I made my example even more complex than necessary. What you're describing is EVEN EASIER to get. Just DON'T clip the rectangle, to let the stars you move cross the boundaries to the area of the adjacent clones (after the tiling, not before, so that the tiling uses the rect's dimensions) - and you get this automatically without the need to duplicate or adjust anything. After that it's easy to unlink any clone in the middle, select its frame rect, and export to bitmap to get an ideal seamless pattern tile.
bulia byak wrote:
On 8/12/06, Aaron Spike <aaron@...749...> wrote:
bulia byak wrote:
Here you go, a seamless pattern made in less than 5 minutes with clone tiler. I used a rounded rectangle for clipping so that you can see where the tiles meet.
This isn't quite seemless. I don't need the rounded rectangle to see the edges.
As I said, it was done in less than 5 minutes. I didn't even zoom in once to get better precision. It's very easy to make the seams perfect if you have a few more minutes to spare.
I was referring to the rendering artifact between adjacent shapes.
A tool meant specificly for creating seamless textures would know when an object was beyond the bbox of the pattern and create and position the opposing clone for you.
Heh, I think I made my example even more complex than necessary. What you're describing is EVEN EASIER to get. Just DON'T clip the rectangle, to let the stars you move cross the boundaries to the area of the adjacent clones (after the tiling, not before, so that the tiling uses the rect's dimensions) - and you get this automatically without the need to duplicate or adjust anything. After that it's easy to unlink any clone in the middle, select its frame rect, and export to bitmap to get an ideal seamless pattern tile.
That's a good tip. Works great.
It isn't possible to achieve this with patterns in svg is it?
Aaron Spike
On 8/12/06, Aaron Spike <aaron@...749...> wrote:
It isn't possible to achieve this with patterns in svg is it?
I think it's possible by making the declared width/height of the pattern different from (smaller than) its actual width/height. But we have no UI for that, and last I checked patterns with such margins had rendering problems in Inkscape.
Ok I think I understand clones a bit better now and you're right I can do exactly what I want with them even if it is a bit clumsy. Here's my current method, feel free to point out better ways i could do this:
1) create a blank document, in my case I want a 100x100 px file
2) create a 100x100px rectangle and position it at the origin
3) create some random object ontop of and smaller than the rectangle
4) group the rectangle and the random object
5) create a 3x3 grid of tiled clones of the group
6) move the original group out of the way for the moment
7) select all the tiled clones and shift them so the middle clone is positioned (top left) at the origin
8) delete the random object from the group as it is no longer needed
9) start drawing on top of the original rectangle making sure new objects are added to the group
10) draw some cool tileable stuff
11) unlink all the clones
12) ungroup all the outer cloned groups
13) delete anything that doesn't overlap the document
14) finished!! your document should now be a seamless tileable chunk of svg coolness
On Sat, 12 Aug 2006, bulia byak wrote:
Date: Sat, 12 Aug 2006 13:28:52 -0300 From: bulia byak <buliabyak@...400...> To: Aaron Spike <aaron@...749...> Cc: inkscape-devel@lists.sourceforge.net, n3storm <nestordiaz@...207...>, yipdw <yipdw1@...400...> Subject: Re: [Inkscape-devel] tileable patterns
On 8/12/06, Aaron Spike <aaron@...749...> wrote:
It isn't possible to achieve this with patterns in svg is it?
Bulia has shown it is possible but from the amount of explanation required it clearly isn't easy. Easy when you know how perhaps, rather than easy to learn or discover. This discusssion might be a good opportunity to see how the feature could be recast in terms of tilable patterns to better match users expectations.
I think it's possible by making the declared width/height of the pattern different from (smaller than) its actual width/height.
Possible in SVG, hassle to actually do it since Jasc Webdraw (RIP) didn't provide user interface for it.
But we have no UI for that, and last I checked patterns with such margins had rendering problems in Inkscape.
More than a few of the patterns I produced for open clipart had a pattern area smaller than the area of the group of objects which made up the pattern.
An example: http://openclipart.org/clipart//special/patterns/pattern-arches-intersecting...
Sincerely
Alan Horkan
Inkscape http://inkscape.org Open Clip Art http://OpenClipArt.org
Alan's Diary http://advogato.org/person/AlanHorkan/
Hi: Okay Bulia: You convinced me! I will try to make a tutorial for the wiki once I master this. Thank you very much.
El Sábado, 12 de Agosto de 2006 16:33, bulia byak escribió: On 8/12/06, Aaron Spike <aaron@...749...> wrote:
bulia byak wrote:
Here you go, a seamless pattern made in less than 5 minutes with clone tiler. I used a rounded rectangle for clipping so that you can see where the tiles meet.
This isn't quite seemless. I don't need the rounded rectangle to see the edges.
As I said, it was done in less than 5 minutes. I didn't even zoom in once to get better precision. It's very easy to make the seams perfect if you have a few more minutes to spare.
I think there is a disconnect in this discussion. Now I haven't tried it, but to my knowledge misses some things that are very important. When your spashes reach the edge of the pattern you must make a copy and attempt to align them perfectly at the edge. This is very difficult.
This is not difficult at all. You need to adjust only one dimension, not both. Just use arrows and alt+arrows.
A tool meant specificly for creating seamless textures would know when an object was beyond the bbox of the pattern and create and position the opposing clone for you.
Heh, I think I made my example even more complex than necessary. What you're describing is EVEN EASIER to get. Just DON'T clip the rectangle, to let the stars you move cross the boundaries to the area of the adjacent clones (after the tiling, not before, so that the tiling uses the rect's dimensions) - and you get this automatically without the need to duplicate or adjust anything. After that it's easy to unlink any clone in the middle, select its frame rect, and export to bitmap to get an ideal seamless pattern tile.
On 8/12/06, n3storm <nestordiaz@...207...> wrote:
Sorry Bulia, but you are not getting the point, I think.
On the contrary, I think you are not getting the point of tiled clones.
A tileable pattern is not just a pattern that you tile, is a piece of image that once tiled you cannot notice where does one tile finnishes and where starts another.
Sure. And tiled clones is the best way to achieve that. Some of the examples of seamless tilings created very easily in Inkscape are in your share/examples folder and on this screenshot:
http://inkscape.osuosl.org/screenshots/gallery/inkscape-0.41-CVS-linux-tiles...
http://www.squidfingers.com/patterns/
They are complex patterns, not just chessboard like patterns.
Certainly. Inkscape supports all 17 symmetry groups, not just P1.
Designers make them by extending the image from the right to enter from the left and the top from the bottom so the designer is the one that makes the pattern tileable, not the software (very bad explained :) see second link).
Of course Inkscape won't make your pattern seamless for you. You still need to draw and edit it yourself. But with tiled clones this is trivially easy to make any pattern seamless.
The software helps for this task. He is asking for an icon view like view (again) to check the pattern being designed is ***seamless*** tileable.
Tiled clones *is* such a "view", with a lot of adjustable parameters.
See an example of the technique: http://veerle.duoh.com/index.php/blog/comments/creating_patterns_in_photosho...
Exactly the same can be easily done in Inkscape, only much easier and faster.
None.none wants Inkscape to simulte the mirroring or something like that, not sure how to exactly Inkscape can help in this task.
Easily. Some of the symmetry groups have mirroring, some not. Just take the trouble of exploring them.
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
Donn wrote:
I envisage some kind of tileable mode where anything you move beyond a given side of the document appears automatically on the opposite side. This way you could preview your tile while creating it
Check the help - Inkscape has a "pattern fill" (I think, from memory) - it works just fine.
D.
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da... _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da... _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
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).
bulia byak wrote:
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).
Admit it. The clone tiler is voodoo. I've played with it now and again so that I would better be able to answer questions about it, but I still am unable to use it effectively most of the time. It needs someone to workup a few good tutorials to show it as the awesome powertool that it is. Add that to the fact that it is buried in a submenu and you get one great tool going unnoticed.
Aaron Spike
On 8/20/06, Aaron Spike <aaron@...749...> wrote:
Admit it. The clone tiler is voodoo. I've played with it now and again so that I would better be able to answer questions about it, but I still am unable to use it effectively most of the time. It needs someone to workup a few good tutorials to show it as the awesome powertool that it is. Add that to the fact that it is buried in a submenu and you get one great tool going unnoticed.
All nice-looking examples that I did are on the screenshots in our screenshot gallery. Moreover, for most of them I indicated the relevant parameters (symmetry group, shifts, etc) right on the screenshots. So these screenshots can already serve as mini-tutorials (that was my intent in creating them). Anyone is welcome to reproduce them and further develop those ideas, with the goal of creating more formal and elaborate tutorials.
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
On 8/27/06, Jon Phillips <jon@...235...> wrote:
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.
That's exactly the reason why this was never done before. Updating clones is done when the original repr is updated, and updating repr is very costly because it involves a lot of callbacks being fired.
Besides, you seem to be doing it in a wrong place. Knot is a too low level object to take care of this anyway. Currently the decision when to update or not update the repr is taken by the nodepath, and that's where you need to work if you want to change this. In particular, at line 999 in nodepath.cpp you see:
// do not update repr here so that node dragging is acceptably fast update_object(nodepath);
This means the display is updated while you drag the node but the repr is only updated when you release it. Same call is used in other analogous places (node sculpting, handle drag, etc.) So, all you need is to replace this update_object with sp_nodepath_update_repr_keyed, giving it the same key within one drag so that the entire drag is undone as a single operation.
Of course you can't do it simply like that, as you're noticing it becomes intolerably slow. I'm not sure of your idea to update repr only sometimes (i.e. not on each move event); you can experiment with it and see if it's workable.
On Sat, 2006-08-26 at 20:36 -0700, Jon Phillips wrote:
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.
The standard Gtk approach is to use "motion hints"; unfortunately they appear to be broken for extended input devices (e.g. tablets) in some widely available versions of Gtk.
-mental
On 8/28/06, MenTaLguY <mental@...3...> wrote:
The standard Gtk approach is to use "motion hints"; unfortunately they appear to be broken for extended input devices (e.g. tablets) in some widely available versions of Gtk.
What are these hints, and how can they help visualize the changing path when you drag a node? I'd think it's not possible without actually drawing this path in some way, which only Inkscape can do (and does, typically with minimum or no lad, though without updating repr during drag).
On Mon, 2006-08-28 at 16:05 -0300, bulia byak wrote:
On 8/28/06, MenTaLguY <mental@...3...> wrote:
The standard Gtk approach is to use "motion hints"; unfortunately they appear to be broken for extended input devices (e.g. tablets) in some widely available versions of Gtk.
What are these hints, and how can they help visualize the changing path when you drag a node? I'd think it's not possible without actually drawing this path in some way, which only Inkscape can do (and does, typically with minimum or no lad, though without updating repr during drag).
The idea behind motion hints is to let you do "live" updates without a whole bunch of motion events piling up. You set the MOTION_HINT in the widget event mask, and Gtk will coalesce the motion events into a single one with the is_hint flag set (and no position data).
Subsequently, it will continue coalescing motion events until gdk_window_get_pointer is called to get the current mouse position. When using motion hints, SPCanvas will automatically call gdk_window_get_pointer and set the motion event position to it when MOTION_HINT is set.
That way, you only get a new motion event every display update, rather than a whole bunch of events piling up while you're busy repainting.
Unfortunately, for some versions of Gtk, it appears that calling gtk_window_get_pointer() is broken with respect to motion hints for tablets. You might remember this from that can't-drag-with-tablet bug... :/
-mental
On 8/28/06, MenTaLguY <mental@...3...> wrote:
The idea behind motion hints is to let you do "live" updates without a whole bunch of motion events piling up. You set the MOTION_HINT in the widget event mask, and Gtk will coalesce the motion events into a single one with the is_hint flag set (and no position data).
Ah, that one. Yes, it does not work, and in any case it requires that Inkscape requests positions, for which there are no provisions in the code currently.
On 8/29/06, MenTaLguY <mental@...3...> wrote:
On Mon, 2006-08-28 at 23:06 -0300, bulia byak wrote:
it requires that Inkscape requests positions, for which there are no provisions in the code currently.
Not true -- see sp_canvas_motion.
Well, this one _always_ calls gdk_window_get_pointer, on each motion event, which kinda defeats the purpose, doesn't it? I guess it was added as a "workaround" for the MOTION_HINT_MASK "bug", not as an attempt to really use it for the intended purpose.
On Tue, 2006-08-29 at 02:29 -0300, bulia byak wrote:
Well, this one _always_ calls gdk_window_get_pointer, on each motion event, which kinda defeats the purpose, doesn't it?
No, that's how you're supposed to do it. Remember that when motion hints are enabled, you're not getting an event for every individual motion event, but rather a single event for every group of motion events between calls to gtk_window_get_pointer.
That way, no matter how many real events arrive while you're busy updating the screen, there will only be ever be a maximum of one motion hint event waiting for you to process when you finally return to the event loop.
See the description of GDK_POINTER_MOTION_HINT_MASK below http://developer.gnome.org/doc/API/2.0/gdk/gdk-Events.html#GdkEventMask
-mental
participants (9)
-
Aaron Spike
-
Alan Horkan
-
bulia byak
-
Donn
-
Jon Phillips
-
MenTaLguY
-
n3storm
-
none none
-
yipdw