summaryrefslogtreecommitdiffstats
path: root/src/live_effects/parameter/powerstrokepointarray.cpp
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2017-11-19 01:47:56 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2017-11-19 01:47:56 +0000
commit4c790c63b7918e2745420c082bfa13e69cec74bd (patch)
treecff968e9d1dbc6e78960d6eb5b160baf71e4861a /src/live_effects/parameter/powerstrokepointarray.cpp
parentMerge branch 'master' into powerpencilII (diff)
downloadinkscape-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.cpp15
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();