Issue #1439: reverse the construction of the "selection to path" plugin.

This commit is contained in:
Simon Budig 2020-05-15 00:25:02 +02:00
parent 484e9afb22
commit 4394b92c71
1 changed files with 15 additions and 11 deletions

View File

@ -542,27 +542,31 @@ do_points (spline_list_array_type in_splines,
if (SPLINE_LIST_LENGTH (spline_list) < 2)
continue;
seg = SPLINE_LIST_ELT (spline_list, 0);
/*
* we're constructing the path backwards
* to have the result of least surprise for "Text along Path".
*/
seg = SPLINE_LIST_ELT (spline_list, SPLINE_LIST_LENGTH (spline_list) - 1);
stroke = gimp_vectors_bezier_stroke_new_moveto (vectors,
START_POINT (seg).x,
START_POINT (seg).y);
END_POINT (seg).x,
END_POINT (seg).y);
for (i = 0; i < SPLINE_LIST_LENGTH (spline_list); i++)
for (i = SPLINE_LIST_LENGTH (spline_list); i > 0; i--)
{
seg = SPLINE_LIST_ELT (spline_list, i);
seg = SPLINE_LIST_ELT (spline_list, i-1);
if (SPLINE_DEGREE (seg) == LINEAR)
gimp_vectors_bezier_stroke_lineto (vectors, stroke,
END_POINT (seg).x,
END_POINT (seg).y);
START_POINT (seg).x,
START_POINT (seg).y);
else if (SPLINE_DEGREE (seg) == CUBIC)
gimp_vectors_bezier_stroke_cubicto (vectors, stroke,
CONTROL1 (seg).x,
CONTROL1 (seg).y,
CONTROL2 (seg).x,
CONTROL2 (seg).y,
END_POINT (seg).x,
END_POINT (seg).y);
CONTROL1 (seg).x,
CONTROL1 (seg).y,
START_POINT (seg).x,
START_POINT (seg).y);
else
g_warning ("print_spline: strange degree (%d)",
SPLINE_DEGREE (seg));