Hi all,
here is finally an update on my recent work. Note that this refers to the status of the project about two weeks ago. Most of what I have done in the meantime is not finished yet and, alas, was further delayed by my missing internet connection during last week and the serious build problems I have encountered afterwards (see different thread). As far as this work-in-progress is concerned, I'll outline it in a separate email to keep this one at a moderate length.
Here is what's new:
- A couple of new LPEs:
* circle through 3 points * angle bisector * parallel to a line (it only uses start and end point of the path) * rotate copies (similar to tiled clones) * offset (in progress, see next email)
- The pen context can now be put into a new internal state in which it waits for a specified number of mouse clicks, then creates a path from these clicks (by default only polylines are allowed but this is configurable) and either applies a new LPE of given type to the newly created path or passes the new path as a parameter to an existing LPE.
This infrastructure is currently planned to only be used under the hood. Its full potential will become clear when we have a better UI for the new geometric LPEs. At the moment you can give it a try in two ways. Either apply the "mirror reflect" LPE to a path - it then waits for two mouse clicks which specify the mirroring line and only applies the LPE after these have occcurred. Or press Shift+C/B/A in pen tool, which activates one of the three LPEs "Circle through 3 points", "perpendicular bisector" or "angle bisector". Each of these waits for mouse clicks and then applies the LPE to a new path created from these (you will notice that you can only create polylines, which is reasonable for these kinds of constructions).
- LPEPerspectivePath has a new handle to control the offset of the path (it's not ideal yet but better than tweaking the values manually).
- LPEs can now choose to display or hide the original path. Boilerplate code for setting this option as well as for creating custom knotholder handles were added to lpe-skeleton.(h|cpp).
- For each PointParam of a LPE, a knotholder handle is now automatically created (a separate status bar tip can be provided, otherwise the tooltip is reused). This made the clumsy "edit on-canvas" button in the LPE dialog obsolete. If you want to see it in action, "Lattice Deformation" is probably the LPE where the benefits of automatic handles are most visible. :)
- Each LPE can now display custom helper paths (similar to how the original path is displayed in node context). Just like handles for PointParams, these helper paths are automatically created for PathParam parameters. Again, "Lattice Deformation" is a good illustration. It displays a (very rudimentary) grid joining the lattice points. In the course of implementing custom helper paths, the framework also was reworked to make live updating of paths faster, among other things (though this can probably still be optimized).
Known bug: The helper paths are not live-updated during dragging, and sometimes old ones don't vanish. This used to work properly, but it needed to be switched off due to the "green fish problem" which occurred last week (sorry for the hassle with it, BTW). It will be sorted out soon.
More soon.
Cheers, Max
On 02/07/2008, Maximilian Albert <Anhalter42@...173...> wrote:
Here is what's new:
A couple of new LPEs:
- circle through 3 points
- angle bisector
- parallel to a line (it only uses start and end point of the path)
- rotate copies (similar to tiled clones)
- offset (in progress, see next email)
These are great! Looking forward to what you show us next. :D
Great work!
- For each PointParam of a LPE, a knotholder handle is now automatically
created
Yes that was exactly what was needed,
- Each LPE can now display custom helper paths
And this too.
Thanks a lot for all this, the lattice deformation is now much more user friendly.
Regards, Steren
On Thu, Jul 3, 2008 at 2:24 PM, Steren <steren.giannini@...400...> wrote:
- Each LPE can now display custom helper paths
And this too.
Thanks a lot for all this, the lattice deformation is now much more user friendly.
Indeed! Except some problems:
- connector lines in the lattice are drawn twice when you move a handle - you must just give new coords to the existing lines, not draw them anew
- clicking twice on the "edit next param" button on Node toolbar crashes:
0x080b1fdc in ShapeEditor::unset_item (this=0xb9850e0) at node-event-vector.h:44 44 in node-event-vector.h (gdb) bt #0 0x080b1fdc in ShapeEditor::unset_item (this=0xb9850e0) at node-event-vector.h:44 #1 0x080b204a in ShapeEditor::set_knotholder (this=0xb9850e0, knot_holder=0xba48a08) at shape-editor.cpp:258 #2 0x08490502 in Inkscape::LivePathEffect::Effect::editNextParamOncanvas (this=0xb935688, item=0xa449730, desktop=0x8b35e00) at live_effects/effect.cpp:563 #3 0x080cf45d in sp_lpe_item_edit_next_param_oncanvas (lpeitem=0xa449730, dt=0x0) at sp-lpe-item.cpp:581
- you can only edit the lattice but not the path itself - i guess this is pending the ShapeEditor change to enable one nodepath & many knotholders at once, how is that advancing?
Thanks!
participants (4)
-
bulia byak
-
john cliff
-
Maximilian Albert
-
Steren