diff options
| author | Jabier Arraiza Cenoz <jabier.arraiza@marker.es> | 2015-03-09 19:33:21 +0000 |
|---|---|---|
| committer | Jabiertxof <jtx@jtx.marker.es> | 2015-03-09 19:33:21 +0000 |
| commit | 4d1f27791fc1e87c514c15cedc0793ffb244bdb7 (patch) | |
| tree | c2c4536126b2f8cdf7b18d844ca3f46c50439b47 /src | |
| parent | extensions. dxf output. improve method for generating closed flag for LWPOLYL... (diff) | |
| download | inkscape-4d1f27791fc1e87c514c15cedc0793ffb244bdb7.tar.gz inkscape-4d1f27791fc1e87c514c15cedc0793ffb244bdb7.zip | |
Removed auto size helper paths because strange result
(bzr r13981)
Diffstat (limited to 'src')
| -rw-r--r-- | src/live_effects/lpe-bspline.cpp | 49 | ||||
| -rw-r--r-- | src/live_effects/lpe-bspline.h | 2 | ||||
| -rw-r--r-- | src/live_effects/lpe-simplify.cpp | 41 | ||||
| -rw-r--r-- | src/live_effects/lpe-simplify.h | 3 |
4 files changed, 40 insertions, 55 deletions
diff --git a/src/live_effects/lpe-bspline.cpp b/src/live_effects/lpe-bspline.cpp index 02a7b3711..b924d8a23 100644 --- a/src/live_effects/lpe-bspline.cpp +++ b/src/live_effects/lpe-bspline.cpp @@ -54,20 +54,17 @@ const double defaultEndPower = 0.6667; LPEBSpline::LPEBSpline(LivePathEffectObject *lpeobject) : Effect(lpeobject), - // initialise your parameters here: - //testpointA(_("Test Point A"), _("Test A"), "ptA", &wr, this, - //Geom::Point(100,100)), steps(_("Steps with CTRL:"), _("Change number of steps with CTRL pressed"), "steps", &wr, this, 2), + helper_size(_("Helper size:"), _("Helper size"), "helper_size", &wr, this, 0), ignoreCusp(_("Ignore cusp nodes"), _("Change ignoring cusp nodes"), "ignoreCusp", &wr, this, true), onlySelected(_("Change only selected nodes"), _("Change only selected nodes"), "onlySelected", &wr, this, false), - showHelper(_("Show helper paths"), _("Show helper paths"), "showHelper", &wr, this, false), weight(_("Change weight:"), _("Change weight of the effect"), "weight", &wr, this, defaultStartPower) { - registerParameter(dynamic_cast<Parameter *>(&weight)); - registerParameter(dynamic_cast<Parameter *>(&steps)); - registerParameter(dynamic_cast<Parameter *>(&ignoreCusp)); - registerParameter(dynamic_cast<Parameter *>(&onlySelected)); - registerParameter(dynamic_cast<Parameter *>(&showHelper)); + registerParameter(&weight); + registerParameter(&steps); + registerParameter(&helper_size); + registerParameter(&ignoreCusp); + registerParameter(&onlySelected); weight.param_set_range(noPower, 1); weight.param_set_increments(0.1, 0.1); @@ -76,6 +73,10 @@ LPEBSpline::LPEBSpline(LivePathEffectObject *lpeobject) steps.param_set_range(1, 10); steps.param_set_increments(1, 1); steps.param_set_digits(0); + + helper_size.param_set_range(0.0, 999.0); + helper_size.param_set_increments(5, 5); + helper_size.param_set_digits(2); } LPEBSpline::~LPEBSpline() {} @@ -106,23 +107,7 @@ void LPEBSpline::doEffect(SPCurve *curve) // Make copy of old path as it is changed during processing Geom::PathVector const original_pathv = curve->get_pathvector(); curve->reset(); - double radiusHelperNodes = 12.0; - if(current_zoom != 0){ - if(current_zoom < 0.5){ - radiusHelperNodes *= current_zoom + 0.4; - } else if(current_zoom > 1) { - radiusHelperNodes *= 1/current_zoom; - } - Geom::Affine i2doc = i2anc_affine(SP_ITEM(sp_lpe_item), SP_OBJECT(SP_ITEM(sp_lpe_item)->document->getRoot())); - double expand = (i2doc.expansionX() + i2doc.expansionY())/2; - std::cout << expand << "expand\n"; - if(expand != 0){ - radiusHelperNodes /= expand; - } - radiusHelperNodes = Inkscape::Util::Quantity::convert(radiusHelperNodes, "px", defaultUnit); - } else { - radiusHelperNodes = 0; - } + for (Geom::PathVector::const_iterator path_it = original_pathv.begin(); path_it != original_pathv.end(); ++path_it) { if (path_it->empty()) @@ -250,8 +235,8 @@ void LPEBSpline::doEffect(SPCurve *curve) } nCurve->curveto(pointAt1, pointAt2, node); } - if(!are_near(node,curve_it1->finalPoint()) && showHelper){ - drawHandle(node, radiusHelperNodes); + if(!are_near(node,curve_it1->finalPoint()) && helper_size > 0.0){ + drawHandle(node, helper_size); } ++curve_it1; ++curve_it2; @@ -264,21 +249,21 @@ void LPEBSpline::doEffect(SPCurve *curve) nCurve->reset(); delete nCurve; } - if(showHelper){ + if(helper_size > 0.0){ Geom::PathVector const pathv = curve->get_pathvector(); hp.push_back(pathv[0]); } } void -LPEBSpline::drawHandle(Geom::Point p, double radiusHelperNodes) +LPEBSpline::drawHandle(Geom::Point p, double helper_size) { char const * svgd = "M 1,0.5 A 0.5,0.5 0 0 1 0.5,1 0.5,0.5 0 0 1 0,0.5 0.5,0.5 0 0 1 0.5,0 0.5,0.5 0 0 1 1,0.5 Z"; Geom::PathVector pathv = sp_svg_read_pathv(svgd); Geom::Affine aff = Geom::Affine(); - aff *= Geom::Scale(radiusHelperNodes); + aff *= Geom::Scale(helper_size); pathv *= aff; - pathv += p - Geom::Point(0.5*radiusHelperNodes, 0.5*radiusHelperNodes); + pathv += p - Geom::Point(0.5*helper_size, 0.5*helper_size); hp.push_back(pathv[0]); } diff --git a/src/live_effects/lpe-bspline.h b/src/live_effects/lpe-bspline.h index a17c0c4ac..642562b24 100644 --- a/src/live_effects/lpe-bspline.h +++ b/src/live_effects/lpe-bspline.h @@ -38,9 +38,9 @@ public: ScalarParam steps; private: + ScalarParam helper_size; BoolParam ignoreCusp; BoolParam onlySelected; - BoolParam showHelper; ScalarParam weight; Geom::PathVector hp; diff --git a/src/live_effects/lpe-simplify.cpp b/src/live_effects/lpe-simplify.cpp index 590ad92af..561e64c8a 100644 --- a/src/live_effects/lpe-simplify.cpp +++ b/src/live_effects/lpe-simplify.cpp @@ -30,6 +30,7 @@ LPESimplify::LPESimplify(LivePathEffectObject *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 preform a smooth"), "smooth_angles", &wr, this, 20.), + helper_size(_("Helper size with direction:"), _("Helper size with direction"), "helper_size", &wr, this, 5), nodes(_("Helper nodes"), _("Show helper nodes"), "nodes", &wr, this, false, "", INKSCAPE_ICON("on"), INKSCAPE_ICON("off")), handles(_("Helper handles"), _("Show helper handles"), "handles", &wr, this, false, @@ -39,23 +40,32 @@ LPESimplify::LPESimplify(LivePathEffectObject *lpeobject) simplifyJustCoalesce(_("Just coalesce"), _("Simplify just coalesce"), "simplifyJustCoalesce", &wr, this, false, "", INKSCAPE_ICON("on"), INKSCAPE_ICON("off")) { - radiusHelperNodes = 6.0; - registerParameter(dynamic_cast<Parameter *>(&steps)); - registerParameter(dynamic_cast<Parameter *>(&threshold)); - registerParameter(dynamic_cast<Parameter *>(&smooth_angles)); - registerParameter(dynamic_cast<Parameter *>(&nodes)); - registerParameter(dynamic_cast<Parameter *>(&handles)); - registerParameter(dynamic_cast<Parameter *>(&simplifyindividualpaths)); - registerParameter(dynamic_cast<Parameter *>(&simplifyJustCoalesce)); + registerParameter(&steps); + registerParameter(&threshold); + registerParameter(&smooth_angles); + registerParameter(&helper_size); + registerParameter(&nodes); + registerParameter(&handles); + registerParameter(&simplifyindividualpaths); + registerParameter(&simplifyJustCoalesce); + threshold.param_set_range(0.0001, Geom::infinity()); threshold.param_set_increments(0.0001, 0.0001); threshold.param_set_digits(6); + steps.param_set_range(0, 100); steps.param_set_increments(1, 1); steps.param_set_digits(0); + smooth_angles.param_set_range(0.0, 365.0); smooth_angles.param_set_increments(10, 10); smooth_angles.param_set_digits(2); + + helper_size.param_set_range(0.0, 999.0); + helper_size.param_set_increments(5, 5); + helper_size.param_set_digits(2); + + radiusHelperNodes = 6.0; } LPESimplify::~LPESimplify() {} @@ -68,19 +78,8 @@ LPESimplify::doBeforeEffect (SPLPEItem const* lpeitem) } bbox = SP_ITEM(lpeitem)->visualBounds(); SPLPEItem * item = const_cast<SPLPEItem*>(lpeitem); - radiusHelperNodes = 12.0; - if(current_zoom != 0 && (nodes || handles)){ - if(current_zoom < 0.5){ - radiusHelperNodes *= current_zoom + 0.4; - } else if(current_zoom > 1) { - radiusHelperNodes *= 1/current_zoom; - } - Geom::Affine i2doc = i2anc_affine(SP_ITEM(lpeitem), SP_OBJECT(SP_ITEM(lpeitem)->document->getRoot())); - double expand = (i2doc.expansionX() + i2doc.expansionY())/2; - if(expand != 0){ - radiusHelperNodes /= expand; - } - radiusHelperNodes = Inkscape::Util::Quantity::convert(radiusHelperNodes, "px", defaultUnit); + if(nodes || handles){ + radiusHelperNodes = helper_size; } else { radiusHelperNodes = 0; } diff --git a/src/live_effects/lpe-simplify.h b/src/live_effects/lpe-simplify.h index 15423915d..0b48867d8 100644 --- a/src/live_effects/lpe-simplify.h +++ b/src/live_effects/lpe-simplify.h @@ -41,12 +41,13 @@ private: ScalarParam steps; ScalarParam threshold; ScalarParam smooth_angles; + ScalarParam helper_size; ToggleButtonParam nodes; ToggleButtonParam handles; ToggleButtonParam simplifyindividualpaths; ToggleButtonParam simplifyJustCoalesce; - double radiusHelperNodes; + double radiusHelperNodes; Geom::PathVector hp; Geom::OptRect bbox; |
