diff options
| author | Jabier Arraiza Cenoz <jabier.arraiza@marker.es> | 2014-11-10 23:45:06 +0000 |
|---|---|---|
| committer | Jabiertxof <jtx@jtx.marker.es> | 2014-11-10 23:45:06 +0000 |
| commit | fc813d4f7b4adb8e681abdd429bc0d9c19312ea5 (patch) | |
| tree | 0b76e70da9f902afa081d3ec9772b38dd46b6e96 /src | |
| parent | update to trunk (diff) | |
| download | inkscape-fc813d4f7b4adb8e681abdd429bc0d9c19312ea5.tar.gz inkscape-fc813d4f7b4adb8e681abdd429bc0d9c19312ea5.zip | |
added join mode
(bzr r13682.1.3)
Diffstat (limited to 'src')
| -rw-r--r-- | src/live_effects/lpe-mirror_symmetry.cpp | 47 |
1 files changed, 15 insertions, 32 deletions
diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index 8877ffd9c..67f4e3f16 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -97,7 +97,7 @@ LPEMirrorSymmetry::doEffect_path (std::vector<Geom::Path> const & path_in) m = m * m2.inverse(); m = m * m1; - if(joinPaths){ + if(joinPaths && !discard_orig_path){ for (Geom::PathVector::const_iterator path_it = path_in.begin(); path_it != path_in.end(); ++path_it) { if (path_it->empty()){ @@ -123,47 +123,30 @@ LPEMirrorSymmetry::doEffect_path (std::vector<Geom::Path> const & path_in) counter++; } if(counter%2!=0){ - if (!discard_orig_path){ - if(i==0){ - original = portion; - } else { - original.append(portion, (Geom::Path::Stitching)1); - } - original.append(portion.reverse() * m, (Geom::Path::Stitching)1); - if (!path_it->closed()){ - path_out.push_back(original); - original.clear(); - } - } else { - path_out.push_back(portion * m); + original = portion; + original.append(portion.reverse() * m, (Geom::Path::Stitching)1); + if(i!=0){ + original.close(); } + path_out.push_back(original); + original.clear(); } timeStart = timeEnd; counter++; } if(cs.size()!=0 && ((cs.size()%2 == 0 && position == -1)||(cs.size()%2 != 0 && position == 1))){ Geom::Path portion = path_it->portion(timeStart, nearest_point(path_it->finalPoint(), *path_it)); - if (!discard_orig_path){ - if(!path_it->closed()){ - original = portion; - } else { - original.append(portion, (Geom::Path::Stitching)1); - } - original.append(portion.reverse() * m, (Geom::Path::Stitching)1); - if (!path_it->closed()){ - path_out.push_back(original); - original.clear(); - } + original = portion.reverse(); + original.append(portion * m, (Geom::Path::Stitching)1); + if (!path_it->closed()){ + path_out.push_back(original); } else { - path_out.push_back(portion * m); + path_out[0].append(original.reverse(), (Geom::Path::Stitching)1); + path_out[0].close(); } - - } - if (path_it->closed() && !original.empty() && !discard_orig_path) { - original.close(); - path_out.push_back(original); + original.clear(); } - if(cs.size() == 0){ + if(cs.size() == 0 && position == -1){ path_out.push_back(*path_it); path_out.push_back(*path_it * m); } |
