diff options
| author | Johan B. C. Engelen <jbc.engelen@swissonline.ch> | 2008-08-03 18:21:33 +0000 |
|---|---|---|
| committer | johanengelen <johanengelen@users.sourceforge.net> | 2008-08-03 18:21:33 +0000 |
| commit | 9937a690699427e230534c54bfb1c8d2a68ecfb5 (patch) | |
| tree | 6b3bdb8f3d5676d9a8f382bc6d7c3d364ba2cca8 /src/splivarot.cpp | |
| parent | fix arc conversion to livarot (diff) | |
| download | inkscape-9937a690699427e230534c54bfb1c8d2a68ecfb5.tar.gz inkscape-9937a690699427e230534c54bfb1c8d2a68ecfb5.zip | |
convert path to linears and cubics only before creating outline. (workaround for a bug in livarot)
(bzr r6548)
Diffstat (limited to 'src/splivarot.cpp')
| -rw-r--r-- | src/splivarot.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/splivarot.cpp b/src/splivarot.cpp index 6d592f662..b8c2bb2f0 100644 --- a/src/splivarot.cpp +++ b/src/splivarot.cpp @@ -54,6 +54,7 @@ #include <libnr/nr-matrix-translate-ops.h> #include <libnr/nr-scale-matrix-ops.h> #include <libnr/n-art-bpath-2geom.h> +#include "helper/geom.h" #include "livarot/Path.h" #include "livarot/Shape.h" @@ -730,11 +731,17 @@ sp_selected_path_outline() o_miter = i_style->stroke_miterlimit.value * o_width; } - Path *orig = Path_for_item(item, false); - if (orig == NULL) { + SPCurve *curvetemp = curve_for_item(item); + if (curvetemp == NULL) { curve->unref(); continue; } + // Livarots outline of arcs is broken. So convert the path to linear and cubics only, for which the outline is created correctly. + Geom::PathVector pathv = pathv_to_linear_and_cubic_beziers( curvetemp->get_pathvector() ); + curvetemp->unref(); + + Path *orig = new Path; + orig->LoadPathVector(pathv); Path *res = new Path; res->SetBackData(false); |
