summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorsu_v <suv-sf@users.sourceforge.net>2014-09-06 14:37:15 +0000
committer~suv <suv-sf@users.sourceforge.net>2014-09-06 14:37:15 +0000
commit2308a72bbb56c400d49ea75e952fbc0cfd9cac3f (patch)
treecdb479b6ea84b1362379434d8ef7a0ab9a830bb5 /src
parentremove compiler option '-pipe' (on LiamW's request) (diff)
parentLPE Powerstroke: enable Extrapolated arc, remove Extrapolated (mirroring) (diff)
downloadinkscape-2308a72bbb56c400d49ea75e952fbc0cfd9cac3f.tar.gz
inkscape-2308a72bbb56c400d49ea75e952fbc0cfd9cac3f.zip
update to trunk (r13546)
(bzr r13506.1.65)
Diffstat (limited to 'src')
-rw-r--r--src/live_effects/lpe-powerstroke.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/live_effects/lpe-powerstroke.cpp b/src/live_effects/lpe-powerstroke.cpp
index eed564b20..b8657e165 100644
--- a/src/live_effects/lpe-powerstroke.cpp
+++ b/src/live_effects/lpe-powerstroke.cpp
@@ -220,12 +220,10 @@ enum LineJoinType {
static const Util::EnumData<unsigned> LineJoinTypeData[] = {
{LINEJOIN_BEVEL, N_("Beveled"), "bevel"},
{LINEJOIN_ROUND, N_("Rounded"), "round"},
- {LINEJOIN_EXTRP_MITER, N_("Extrapolated"), "extrapolated"},
+// {LINEJOIN_EXTRP_MITER, N_("Extrapolated"), "extrapolated"}, // disabled because doesn't work well
+ {LINEJOIN_EXTRP_MITER_ARC, N_("Extrapolated arc"), "extrp_arc"},
{LINEJOIN_MITER, N_("Miter"), "miter"},
{LINEJOIN_SPIRO, N_("Spiro"), "spiro"},
-#ifdef LPE_ENABLE_TEST_EFFECTS
- {LINEJOIN_EXTRP_MITER_ARC, N_("Extrapolated arc"), "extrp_arc"},
-#endif
};
static const Util::EnumDataConverter<unsigned> LineJoinTypeConverter(LineJoinTypeData, sizeof(LineJoinTypeData)/sizeof(*LineJoinTypeData));
@@ -407,8 +405,9 @@ static Geom::Path path_from_piecewise_fix_cusps( Geom::Piecewise<Geom::D2<Geom::
break;
}
case LINEJOIN_EXTRP_MITER_ARC: {
- Geom::Circle circle1 = Geom::touching_circle(reverse(B[prev_i]),0.);
- Geom::Circle circle2 = Geom::touching_circle(B[i],0.);
+ // Extrapolate using the curvature at the end of the path segments to join
+ Geom::Circle circle1 = Geom::touching_circle(reverse(B[prev_i]), 0.0);
+ Geom::Circle circle2 = Geom::touching_circle(B[i], 0.0);
Geom::Point points[2];
int solutions = circle_circle_intersection(circle1, circle2, points[0], points[1]);
if (solutions == 2) {