From 141ed2d34edae87a7d529416a764b563574c719a Mon Sep 17 00:00:00 2001 From: Nathan Lee <2431820-nathanal@users.noreply.gitlab.com> Date: Fri, 17 May 2019 19:49:15 +1000 Subject: Change Path Cutting for Arcs The arc's sweep and large arc flags are wrong. Also remove early return (proper error handling already present). https://gitlab.com/inkscape/inkscape/issues/250 --- src/livarot/PathCutting.cpp | 4 ++-- src/livarot/PathOutline.cpp | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/livarot/PathCutting.cpp b/src/livarot/PathCutting.cpp index 34263bc58..94826c70b 100644 --- a/src/livarot/PathCutting.cpp +++ b/src/livarot/PathCutting.cpp @@ -1241,9 +1241,9 @@ void Path::ConvertPositionsToForced(int nbPos, cut_position *poss) PathDescrArcTo *nData = dynamic_cast(descr_cmd[cp]); nData->p=theP; if ( delta*ct > M_PI ) { - nData->clockwise=true; + nData->large=true; } else { - nData->clockwise=false; + nData->large=false; } } // decalages dans le tableau des positions de coupe diff --git a/src/livarot/PathOutline.cpp b/src/livarot/PathOutline.cpp index a1bc7db13..4e0cefec7 100644 --- a/src/livarot/PathOutline.cpp +++ b/src/livarot/PathOutline.cpp @@ -955,8 +955,6 @@ void Path::TangentOnArcAt(double at, const Geom::Point &iS, PathDescrArcTo const csex /= rx; csey /= ry; double l = csex * csex + csey * csey; - if (l >= 4) - return; double const d = sqrt(std::max(1 - l / 4, 0.0)); double csdx = csey; double csdy = -csex; -- cgit v1.2.3