summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNathan Lee <2431820-nathanal@users.noreply.gitlab.com>2019-05-17 09:49:15 +0000
committerThomas Holder <thomas@thomas-holder.de>2019-06-17 21:53:51 +0000
commit141ed2d34edae87a7d529416a764b563574c719a (patch)
tree4ad1b37cb7e0b86db3822c00daacf16e9d4ac664 /src
parentSync pen toolbar mode change with tool (diff)
downloadinkscape-141ed2d34edae87a7d529416a764b563574c719a.tar.gz
inkscape-141ed2d34edae87a7d529416a764b563574c719a.zip
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
Diffstat (limited to 'src')
-rw-r--r--src/livarot/PathCutting.cpp4
-rw-r--r--src/livarot/PathOutline.cpp2
2 files changed, 2 insertions, 4 deletions
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<PathDescrArcTo *>(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;