summaryrefslogtreecommitdiffstats
path: root/src/live_effects
diff options
context:
space:
mode:
authorsu_v <suv-sf@users.sourceforge.net>2015-12-07 10:00:35 +0000
committer~suv <suv-sf@users.sourceforge.net>2015-12-07 10:00:35 +0000
commit457c41675d69c7463c3590ad9b8e43bcae20e611 (patch)
tree43d1f8d4e350a3070944bbd7bb4ad265c1b6ed02 /src/live_effects
parentmerge from trunk (r14473) (diff)
parentRemove leftover assert. (diff)
downloadinkscape-457c41675d69c7463c3590ad9b8e43bcae20e611.tar.gz
inkscape-457c41675d69c7463c3590ad9b8e43bcae20e611.zip
merge from trunk (r14506)
(bzr r14425.1.4)
Diffstat (limited to 'src/live_effects')
-rw-r--r--src/live_effects/lpe-interpolate_points.cpp5
-rw-r--r--src/live_effects/lpe-roughen.cpp38
-rw-r--r--src/live_effects/lpe-roughen.h1
-rw-r--r--src/live_effects/lpe-simplify.cpp19
4 files changed, 15 insertions, 48 deletions
diff --git a/src/live_effects/lpe-interpolate_points.cpp b/src/live_effects/lpe-interpolate_points.cpp
index 4ac139752..cf70832ee 100644
--- a/src/live_effects/lpe-interpolate_points.cpp
+++ b/src/live_effects/lpe-interpolate_points.cpp
@@ -52,8 +52,11 @@ Geom::PathVector
LPEInterpolatePoints::doEffect_path (Geom::PathVector const & path_in)
{
Geom::PathVector path_out;
-
+#if __cplusplus <= 199711L
std::auto_ptr<Geom::Interpolate::Interpolator> interpolator( Geom::Interpolate::Interpolator::create(static_cast<Geom::Interpolate::InterpolatorType>(interpolator_type.get_value())) );
+#else
+ std::unique_ptr<Geom::Interpolate::Interpolator> interpolator( Geom::Interpolate::Interpolator::create(static_cast<Geom::Interpolate::InterpolatorType>(interpolator_type.get_value())) );
+#endif
for(Geom::PathVector::const_iterator path_it = path_in.begin(); path_it != path_in.end(); ++path_it) {
if (path_it->empty())
diff --git a/src/live_effects/lpe-roughen.cpp b/src/live_effects/lpe-roughen.cpp
index 310f791a1..b4ee54f1a 100644
--- a/src/live_effects/lpe-roughen.cpp
+++ b/src/live_effects/lpe-roughen.cpp
@@ -91,44 +91,6 @@ LPERoughen::LPERoughen(LivePathEffectObject *lpeobject)
LPERoughen::~LPERoughen() {}
-static void
-sp_get_better_default_size(SPItem *item, double &value)
-{
- if (SP_IS_GROUP(item)) {
- std::vector<SPItem*> const item_list = sp_item_group_item_list(SP_GROUP(item));
- for ( std::vector<SPItem*>::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) {
- SPItem *subitem = *iter;
- sp_get_better_default_size(subitem, value);
- }
- if(item_list.size() > 0){
- value /= item_list.size();
- }
- } else {
- SPShape *shape = dynamic_cast<SPShape *>(item);
- if (shape) {
- SPCurve * c = NULL;
- SPPath *path = dynamic_cast<SPPath *>(shape);
- if (path) {
- c = path->get_original_curve();
- } else {
- c = shape->getCurve();
- }
- if (c) {
- value += Geom::length(paths_to_pw(c->get_pathvector()))/(c->get_segment_count () * 6);
- }
- }
- }
-}
-
-void LPERoughen::doOnApply(SPLPEItem const* lpeitem)
-{
- SPLPEItem * splpeitem = const_cast<SPLPEItem *>(lpeitem);
- double initial = 0;
- sp_get_better_default_size(SP_ITEM(splpeitem), initial);
- displace_x.param_set_value(initial, 0);
- displace_y.param_set_value(initial, 0);
-}
-
void LPERoughen::doBeforeEffect(SPLPEItem const *lpeitem)
{
if(spray_tool_friendly && seed == 0 && SP_OBJECT(lpeitem)->getId()){
diff --git a/src/live_effects/lpe-roughen.h b/src/live_effects/lpe-roughen.h
index 7e6a19d5a..44a723c89 100644
--- a/src/live_effects/lpe-roughen.h
+++ b/src/live_effects/lpe-roughen.h
@@ -45,7 +45,6 @@ public:
virtual void doEffect(SPCurve *curve);
virtual double sign(double randNumber);
- virtual void doOnApply(SPLPEItem const* lpeitem);
virtual Geom::Point randomize(double max_lenght, bool is_node = false);
virtual void doBeforeEffect(SPLPEItem const * lpeitem);
virtual SPCurve const * addNodesAndJitter(Geom::Curve const * A, Geom::Point &prev, Geom::Point &last_move, double t, bool last);
diff --git a/src/live_effects/lpe-simplify.cpp b/src/live_effects/lpe-simplify.cpp
index 2d79d5b34..a919756df 100644
--- a/src/live_effects/lpe-simplify.cpp
+++ b/src/live_effects/lpe-simplify.cpp
@@ -28,8 +28,8 @@ namespace LivePathEffect {
LPESimplify::LPESimplify(LivePathEffectObject *lpeobject)
: Effect(lpeobject),
steps(_("Steps:"),_("Change number of simplify steps "), "steps", &wr, this,1),
- threshold(_("Roughly threshold:"), _("Roughly threshold:"), "threshold", &wr, this, 0.003),
- smooth_angles(_("Smooth angles:"), _("Max degree difference on handles to perform a smooth"), "smooth_angles", &wr, this, 20.),
+ threshold(_("Roughly threshold:"), _("Roughly threshold:"), "threshold", &wr, this, 0.002),
+ smooth_angles(_("Smooth angles:"), _("Max degree difference on handles to perform a smooth"), "smooth_angles", &wr, this, 0.),
helper_size(_("Helper size:"), _("Helper size"), "helper_size", &wr, this, 5),
simplify_individual_paths(_("Paths separately"), _("Simplifying paths (separately)"), "simplify_individual_paths", &wr, this, false,
"", INKSCAPE_ICON("on"), INKSCAPE_ICON("off")),
@@ -51,7 +51,7 @@ LPESimplify::LPESimplify(LivePathEffectObject *lpeobject)
steps.param_set_increments(1, 1);
steps.param_set_digits(0);
- smooth_angles.param_set_range(0.0, 365.0);
+ smooth_angles.param_set_range(0.0, 360.0);
smooth_angles.param_set_increments(10, 10);
smooth_angles.param_set_digits(2);
@@ -138,6 +138,7 @@ LPESimplify::doEffect(SPCurve *curve)
if(simplify_individual_paths) {
size = Geom::L2(Geom::bounds_fast(original_pathv)->dimensions());
}
+ size /= sp_lpe_item->i2doc_affine().descrim();
for (int unsigned i = 0; i < steps; i++) {
if ( simplify_just_coalesce ) {
pathliv->Coalesce(threshold * size);
@@ -198,13 +199,15 @@ LPESimplify::generateHelperPathAndSmooth(Geom::PathVector &result)
Geom::Point point_at2 = curve_it1->finalPoint();
Geom::Point point_at3 = curve_it1->finalPoint();
Geom::Point point_at4 = curve_it1->finalPoint();
+
+ if(start == Geom::Point(0,0)) {
+ start = point_at1;
+ }
+
if (cubic) {
point_at1 = (*cubic)[1];
point_at2 = (*cubic)[2];
}
- if(start == Geom::Point(0,0)) {
- start = point_at1;
- }
if(path_it->closed() && curve_it2 == curve_endit) {
point_at4 = start;
@@ -219,11 +222,11 @@ LPESimplify::generateHelperPathAndSmooth(Geom::PathVector &result)
Geom::Ray ray2(point_at3, point_at4);
double angle1 = Geom::rad_to_deg(ray1.angle());
double angle2 = Geom::rad_to_deg(ray2.angle());
- if((smooth_angles >= angle2 - angle1) && !are_near(point_at4,point_at3) && !are_near(point_at2,point_at3)) {
+ if((smooth_angles >= std::abs(angle2 - angle1)) && !are_near(point_at4,point_at3) && !are_near(point_at2,point_at3)) {
double dist = Geom::distance(point_at2,point_at3);
Geom::Angle angleFixed = ray2.angle();
angleFixed -= Geom::Angle::from_degrees(180.0);
- point_at2 = Geom::Point::polar(angleFixed,dist) + point_at3;
+ point_at2 = Geom::Point::polar(angleFixed, dist) + point_at3;
}
nCurve->curveto(point_at1, point_at2, curve_it1->finalPoint());
cubic = dynamic_cast<Geom::CubicBezier const *>(nCurve->last_segment());