summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2014-11-10 23:45:06 +0000
committerJabiertxof <jtx@jtx.marker.es>2014-11-10 23:45:06 +0000
commitfc813d4f7b4adb8e681abdd429bc0d9c19312ea5 (patch)
tree0b76e70da9f902afa081d3ec9772b38dd46b6e96 /src
parentupdate to trunk (diff)
downloadinkscape-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.cpp47
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);
}