summaryrefslogtreecommitdiffstats
path: root/src/live_effects/parameter
diff options
context:
space:
mode:
authorLiam P. White <inkscapebrony@gmail.com>2014-10-08 02:22:03 +0000
committerLiam P. White <inkscapebrony@gmail.com>2014-10-08 02:22:03 +0000
commitf3840fe9d0d423f6ddf5a68d776a903d57ffb7b5 (patch)
treec8e28b27f5885928ccf866a69eb6cbc99fde599c /src/live_effects/parameter
parentUpdate to experimental r13565 (diff)
parentSome template cleanup... (diff)
downloadinkscape-f3840fe9d0d423f6ddf5a68d776a903d57ffb7b5.tar.gz
inkscape-f3840fe9d0d423f6ddf5a68d776a903d57ffb7b5.zip
Update to experimental r13598
(bzr r13341.5.17)
Diffstat (limited to 'src/live_effects/parameter')
-rw-r--r--src/live_effects/parameter/filletchamferpointarray.cpp37
-rw-r--r--src/live_effects/parameter/path.cpp6
-rw-r--r--src/live_effects/parameter/pointreseteable.cpp2
-rw-r--r--src/live_effects/parameter/powerstrokepointarray.cpp11
-rw-r--r--src/live_effects/parameter/powerstrokepointarray.h2
-rw-r--r--src/live_effects/parameter/text.cpp2
6 files changed, 31 insertions, 29 deletions
diff --git a/src/live_effects/parameter/filletchamferpointarray.cpp b/src/live_effects/parameter/filletchamferpointarray.cpp
index bb00ef045..e2b1aba61 100644
--- a/src/live_effects/parameter/filletchamferpointarray.cpp
+++ b/src/live_effects/parameter/filletchamferpointarray.cpp
@@ -8,11 +8,6 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include <glibmm.h>
-
-#include "ui/dialog/lpe-fillet-chamfer-properties.h"
-#include "live_effects/parameter/filletchamferpointarray.h"
-
#include <2geom/piecewise.h>
#include <2geom/sbasis-to-bezier.h>
#include <2geom/sbasis-geometric.h>
@@ -384,25 +379,29 @@ void FilletChamferPointArrayParam::updateCanvasIndicators()
std::vector<Point> ts = data();
hp.clear();
unsigned int i = 0;
- Piecewise<D2<SBasis> > const &n = get_pwd2_normal();
for (std::vector<Point>::const_iterator point_it = ts.begin();
point_it != ts.end(); ++point_it) {
- double Xvalue = to_time(i, (*point_it)[X]);
- double XPlusValue = to_time(i, -helper_size) - i;
- if (Xvalue == i) {
+ double Xvalue = to_time(i, (*point_it)[X]) -i;
+ if (Xvalue == 0) {
i++;
continue;
}
- Point canvas_point = last_pwd2.valueAt(Xvalue) + 0 * n.valueAt(Xvalue);
- Point start_point = last_pwd2.valueAt(Xvalue + XPlusValue) +
- helper_size * n.valueAt(Xvalue + XPlusValue);
- Point end_point = last_pwd2.valueAt(Xvalue + XPlusValue) -
- helper_size * n.valueAt(Xvalue + XPlusValue);
- Geom::Path arrow;
- arrow.start(start_point);
- arrow.appendNew<Geom::LineSegment>(canvas_point);
- arrow.appendNew<Geom::LineSegment>(end_point);
- hp.push_back(arrow);
+ Geom::Point ptA = last_pwd2[i].valueAt(Xvalue);
+ Geom::Point derivA = unit_vector(derivative(last_pwd2[i]).valueAt(Xvalue));
+ Geom::Rotate rot(Geom::Rotate::from_degrees(-90));
+ derivA = derivA * rot;
+ Geom::Point C = ptA - derivA * helper_size;
+ Geom::Point D = ptA + derivA * helper_size;
+ Geom::Ray ray1(C, D);
+ char const * svgd = "M 1,0.25 0.5,0 1,-0.25 M 1,0.5 0,0 1,-0.5";
+ Geom::PathVector pathv = sp_svg_read_pathv(svgd);
+ Geom::Affine aff = Geom::Affine();
+ aff *= Geom::Scale(helper_size);
+ aff *= Geom::Rotate(ray1.angle() - deg_to_rad(270));
+ pathv *= aff;
+ pathv += last_pwd2[i].valueAt(Xvalue);
+ hp.push_back(pathv[0]);
+ hp.push_back(pathv[1]);
i++;
}
}
diff --git a/src/live_effects/parameter/path.cpp b/src/live_effects/parameter/path.cpp
index 8095056b7..2a14d4208 100644
--- a/src/live_effects/parameter/path.cpp
+++ b/src/live_effects/parameter/path.cpp
@@ -28,8 +28,8 @@
#include "document-undo.h"
// needed for on-canvas editting:
-#include "tools-switch.h"
-#include "shape-editor.h"
+#include "ui/tools-switch.h"
+#include "ui/shape-editor.h"
#include "desktop-handles.h"
#include "selection.h"
// clipboard support
@@ -143,7 +143,7 @@ gchar *
PathParam::param_getSVGValue() const
{
if (href) {
- return href;
+ return g_strdup(href);
} else {
gchar * svgd = sp_svg_write_path( _pathvector );
return svgd;
diff --git a/src/live_effects/parameter/pointreseteable.cpp b/src/live_effects/parameter/pointreseteable.cpp
index ec36fc035..c0f8858b8 100644
--- a/src/live_effects/parameter/pointreseteable.cpp
+++ b/src/live_effects/parameter/pointreseteable.cpp
@@ -15,7 +15,7 @@
#include "verbs.h"
#include "knotholder.h"
#include <glibmm/i18n.h>
-#include "tools-switch.h"
+#include "ui/tools-switch.h"
#include "ui/tools/node-tool.h"
// needed for on-canvas editting:
diff --git a/src/live_effects/parameter/powerstrokepointarray.cpp b/src/live_effects/parameter/powerstrokepointarray.cpp
index 427be8065..851b12ef8 100644
--- a/src/live_effects/parameter/powerstrokepointarray.cpp
+++ b/src/live_effects/parameter/powerstrokepointarray.cpp
@@ -68,13 +68,16 @@ PowerStrokePointArrayParam::param_newWidget()
*/
}
-
-void PowerStrokePointArrayParam::param_transform_multiply(Geom::Affine const& /*postmul*/, bool /*set*/)
+void PowerStrokePointArrayParam::param_transform_multiply(Geom::Affine const& postmul, bool /*set*/)
{
-// param_set_and_write_new_value( (*this) * postmul );
+ std::vector<Geom::Point> result;
+ for (std::vector<Geom::Point>::const_iterator point_it = _vector.begin(); point_it != _vector.end(); ++point_it) {
+ Geom::Coord A = (*point_it)[Geom::Y] * ((postmul.expansionX() + postmul.expansionY()) / 2);
+ result.push_back(Geom::Point((*point_it)[Geom::X], A));
+ }
+ param_set_and_write_new_value(result);
}
-
/** call this method to recalculate the controlpoints such that they stay at the same location relative to the new path. Useful after adding/deleting nodes to the path.*/
void
PowerStrokePointArrayParam::recalculate_controlpoints_for_new_pwd2(Geom::Piecewise<Geom::D2<Geom::SBasis> > const & pwd2_in)
diff --git a/src/live_effects/parameter/powerstrokepointarray.h b/src/live_effects/parameter/powerstrokepointarray.h
index 911bbc82d..70b22e27e 100644
--- a/src/live_effects/parameter/powerstrokepointarray.h
+++ b/src/live_effects/parameter/powerstrokepointarray.h
@@ -31,7 +31,7 @@ public:
virtual Gtk::Widget * param_newWidget();
- virtual void param_transform_multiply(Geom::Affine const& /*postmul*/, bool /*set*/);
+ virtual void param_transform_multiply(Geom::Affine const& postmul, bool /*set*/);
void set_oncanvas_looks(SPKnotShapeType shape, SPKnotModeType mode, guint32 color);
diff --git a/src/live_effects/parameter/text.cpp b/src/live_effects/parameter/text.cpp
index 88fc27abd..03b37b51c 100644
--- a/src/live_effects/parameter/text.cpp
+++ b/src/live_effects/parameter/text.cpp
@@ -85,7 +85,7 @@ TextParam::param_readSVGValue(const gchar * strvalue)
gchar *
TextParam::param_getSVGValue() const
{
- return (gchar *) value.c_str();
+ return g_strdup(value.c_str());
}
Gtk::Widget *