summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2015-03-09 19:33:21 +0000
committerJabiertxof <jtx@jtx.marker.es>2015-03-09 19:33:21 +0000
commit4d1f27791fc1e87c514c15cedc0793ffb244bdb7 (patch)
treec2c4536126b2f8cdf7b18d844ca3f46c50439b47 /src
parentextensions. dxf output. improve method for generating closed flag for LWPOLYL... (diff)
downloadinkscape-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.cpp49
-rw-r--r--src/live_effects/lpe-bspline.h2
-rw-r--r--src/live_effects/lpe-simplify.cpp41
-rw-r--r--src/live_effects/lpe-simplify.h3
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;