diff options
| author | Jabier Arraiza <jabier.arraiza@marker.es> | 2017-11-19 01:47:56 +0000 |
|---|---|---|
| committer | Jabier Arraiza <jabier.arraiza@marker.es> | 2017-11-19 01:47:56 +0000 |
| commit | 4c790c63b7918e2745420c082bfa13e69cec74bd (patch) | |
| tree | cff968e9d1dbc6e78960d6eb5b160baf71e4861a /src/live_effects/parameter/powerstrokepointarray.cpp | |
| parent | Merge branch 'master' into powerpencilII (diff) | |
| download | inkscape-4c790c63b7918e2745420c082bfa13e69cec74bd.tar.gz inkscape-4c790c63b7918e2745420c082bfa13e69cec74bd.zip | |
Working on fix smooth draw
Diffstat (limited to 'src/live_effects/parameter/powerstrokepointarray.cpp')
| -rw-r--r-- | src/live_effects/parameter/powerstrokepointarray.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/live_effects/parameter/powerstrokepointarray.cpp b/src/live_effects/parameter/powerstrokepointarray.cpp index bc06e42ca..7e2da4cfd 100644 --- a/src/live_effects/parameter/powerstrokepointarray.cpp +++ b/src/live_effects/parameter/powerstrokepointarray.cpp @@ -89,6 +89,21 @@ PowerStrokePointArrayParam::recalculate_controlpoints_for_new_pwd2(Geom::Piecewi } } +/** call this method to recalculate the controlpoints when path is reversed.*/ +void +PowerStrokePointArrayParam::reverse_controlpoints() +{ + if (!last_pwd2.empty()) { + Geom::Piecewise<Geom::D2<Geom::SBasis> > const & pwd2_in_reverse = reverse(last_pwd2); + for (unsigned int i = 0; i < _vector.size(); ++i) { + Geom::Point control_pos = last_pwd2.valueAt(_vector[i][Geom::X]); + double new_pos = Geom::nearest_time(control_pos, pwd2_in_reverse); + _vector[i][Geom::X] = new_pos; + } + write_to_SVG(); + } +} + float PowerStrokePointArrayParam::median_width() { size_t size = _vector.size(); |
