summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2015-06-04 20:21:35 +0000
committerJabiertxof <jtx@jtx.marker.es>2015-06-04 20:21:35 +0000
commite9e6116349cc51e31ae3a643a89644aa4e817b0a (patch)
tree813a32442d36861389ea14d491ba811a2756be75 /src
parentupdate to trunk (diff)
downloadinkscape-e9e6116349cc51e31ae3a643a89644aa4e817b0a.tar.gz
inkscape-e9e6116349cc51e31ae3a643a89644aa4e817b0a.zip
fix minor bug
(bzr r13708.1.36)
Diffstat (limited to 'src')
-rw-r--r--src/live_effects/lpe-copy_rotate.cpp42
1 files changed, 23 insertions, 19 deletions
diff --git a/src/live_effects/lpe-copy_rotate.cpp b/src/live_effects/lpe-copy_rotate.cpp
index d12c03f7e..cfc1b92cf 100644
--- a/src/live_effects/lpe-copy_rotate.cpp
+++ b/src/live_effects/lpe-copy_rotate.cpp
@@ -110,7 +110,7 @@ LPECopyRotate::doBeforeEffect (SPLPEItem const* lpeitem)
{
using namespace Geom;
original_bbox(lpeitem);
- if(copies_to_360 ) {
+ if( copies_to_360 ) {
rotation_angle.param_set_value(360.0/(double)num_copies);
}
if(fusion_paths && rotation_angle * num_copies > 360 && rotation_angle > 0){
@@ -181,16 +181,18 @@ LPECopyRotate::split(std::vector<Geom::Path> &path_on,Geom::Path divider)
for(unsigned int i = 0; i < crossed.size(); i++) {
double timeEnd = crossed[i];
Geom::Path portion_original = original.portion(time_start,timeEnd);
- Geom::Point side_checker = portion_original.pointAt(0.001);
- position = pointSideOfLine(divider[0].finalPoint(), divider[1].finalPoint(), side_checker);
- if(rotation_angle != 180) {
- position = pointInTriangle(side_checker, divider.initialPoint(), divider[0].finalPoint(), divider[1].finalPoint());
- }
- if(position == 1) {
- tmp_path.push_back(portion_original);
+ if(!portion_original.empty()){
+ Geom::Point side_checker = portion_original.pointAt(0.001);
+ position = pointSideOfLine(divider[0].finalPoint(), divider[1].finalPoint(), side_checker);
+ if(rotation_angle != 180) {
+ position = pointInTriangle(side_checker, divider.initialPoint(), divider[0].finalPoint(), divider[1].finalPoint());
+ }
+ if(position == 1) {
+ tmp_path.push_back(portion_original);
+ }
+ portion_original.clear();
+ time_start = timeEnd;
}
- portion_original.clear();
- time_start = timeEnd;
}
position = pointSideOfLine(divider[0].finalPoint(), divider[1].finalPoint(), original.finalPoint());
if(rotation_angle != 180) {
@@ -198,18 +200,20 @@ LPECopyRotate::split(std::vector<Geom::Path> &path_on,Geom::Path divider)
}
if(cs.size() > 0 && position == 1) {
Geom::Path portion_original = original.portion(time_start, original.size());
- if (!original.closed()) {
- tmp_path.push_back(portion_original);
- } else {
- if(tmp_path.size() > 0 && tmp_path[0].size() > 0 ) {
- portion_original.setFinal(tmp_path[0].initialPoint());
- portion_original.append(tmp_path[0]);
- tmp_path[0] = portion_original;
- } else {
+ if(!portion_original.empty()){
+ if (!original.closed()) {
tmp_path.push_back(portion_original);
+ } else {
+ if(tmp_path.size() > 0 && tmp_path[0].size() > 0 ) {
+ portion_original.setFinal(tmp_path[0].initialPoint());
+ portion_original.append(tmp_path[0]);
+ tmp_path[0] = portion_original;
+ } else {
+ tmp_path.push_back(portion_original);
+ }
}
+ portion_original.clear();
}
- portion_original.clear();
}
if(cs.size()==0 && position == 1) {
tmp_path.push_back(original);