summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2014-07-23 23:20:18 +0000
committerJabiertxof <jtx@jtx.marker.es>2014-07-23 23:20:18 +0000
commit693e6eb237a6c4fbc9a9d47a30fad10b74e2157b (patch)
tree54f9b1fe2ef9c0d73787452fd51ecea9a2c9c86e /src
parentFixed alignaments of toggle buttons (diff)
downloadinkscape-693e6eb237a6c4fbc9a9d47a30fad10b74e2157b.tar.gz
inkscape-693e6eb237a6c4fbc9a9d47a30fad10b74e2157b.zip
Fix bug on closed nodes in fillet-chamfer LPE
(bzr r13341.1.96)
Diffstat (limited to 'src')
-rw-r--r--src/live_effects/lpe-fillet-chamfer.cpp24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/live_effects/lpe-fillet-chamfer.cpp b/src/live_effects/lpe-fillet-chamfer.cpp
index a24f5e60e..1c3dc645c 100644
--- a/src/live_effects/lpe-fillet-chamfer.cpp
+++ b/src/live_effects/lpe-fillet-chamfer.cpp
@@ -512,24 +512,27 @@ LPEFilletChamfer::doEffect_path(std::vector<Geom::Path> const &path_in)
if (filletChamferData[counter][Y] == 0) {
time_it1 = 0;
}
- time_it2 = modf(fillet_chamfer_values.to_time(
- counter + 1, filletChamferData[counter + 1][X]),
- &intpart);
- if (curve_it2 == curve_endit) {
+ if (path_it->closed() && curve_it2 == curve_endit) {
time_it2 = modf(fillet_chamfer_values.to_time(
counter - counterCurves,
filletChamferData[counter - counterCurves][X]),
&intpart);
+ } else {
+ time_it2 = modf(fillet_chamfer_values.to_time(
+ counter + 1, filletChamferData[counter + 1][X]),
+ &intpart);
}
- double resultLenght =
- it1_length + fillet_chamfer_values.to_len(
- counter + 1, filletChamferData[counter + 1][X]);
+ double resultLenght = 0;
time_it1_B = 1;
if (path_it->closed() && curve_it2 == curve_endit) {
resultLenght =
it1_length + fillet_chamfer_values.to_len(
counter - counterCurves,
filletChamferData[counter - counterCurves][X]);
+ } else {
+ resultLenght =
+ it1_length + fillet_chamfer_values.to_len(
+ counter + 1, filletChamferData[counter + 1][X]);
}
if (resultLenght > 0 && time_it2 != 0) {
time_it1_B = modf(fillet_chamfer_values.to_time(counter, -resultLenght),
@@ -541,7 +544,12 @@ LPEFilletChamfer::doEffect_path(std::vector<Geom::Path> const &path_in)
time_it1_B = gapHelper;
}
}
- if (filletChamferData[counter + 1][Y] == 0) {
+ if (path_it->closed() && curve_it2 == curve_endit &&
+ filletChamferData[counter - counterCurves][Y] == 0) {
+ time_it1_B = 1;
+ time_it2 = 0;
+ } else if (path_it->size() > counterCurves + 1 &&
+ filletChamferData[counter + 1][Y] == 0) {
time_it1_B = 1;
time_it2 = 0;
}