diff options
| author | JF Barraud <jf.barraud@gmail.com> | 2008-09-17 22:38:48 +0000 |
|---|---|---|
| committer | jfbarraud <jfbarraud@users.sourceforge.net> | 2008-09-17 22:38:48 +0000 |
| commit | e132eee26eb4f3327424d8aa388ad7fa10217063 (patch) | |
| tree | 2c099e1a44cfc06c313266ce54dacbdd1ec160e7 /src | |
| parent | Fix minor breakage in grid preferences caused by pref refactoring. (diff) | |
| download | inkscape-e132eee26eb4f3327424d8aa388ad7fa10217063.tar.gz inkscape-e132eee26eb4f3327424d8aa388ad7fa10217063.zip | |
lpe-vonkoch: added checkbox to restrict to (orientation preserving or not) similarity transforms.
(bzr r6832)
Diffstat (limited to 'src')
| -rw-r--r-- | src/live_effects/lpe-vonkoch.cpp | 7 | ||||
| -rw-r--r-- | src/live_effects/lpe-vonkoch.h | 1 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/live_effects/lpe-vonkoch.cpp b/src/live_effects/lpe-vonkoch.cpp index bc86e4daa..5c77801c8 100644 --- a/src/live_effects/lpe-vonkoch.cpp +++ b/src/live_effects/lpe-vonkoch.cpp @@ -50,12 +50,14 @@ LPEVonKoch::LPEVonKoch(LivePathEffectObject *lpeobject) : generator(_("Generating path"), _("Path whos segments define the fractal"), "generator", &wr, this, "M0,0 L3,0 M0,1 L1,1 M 2,1 L3,1"), drawall(_("Draw all generations"), _("If unchecked, draw only the last generation"), "drawall", &wr, this, true), reftype(_("Reference"), _("Generating path segments define transforms in reference to bbox or last segment"), "reftype", VonKochRefTypeConverter, &wr, this, VKREF_BBOX), + similar_only(_("Use uniform scale/rotation only"), _("If off, 2segments component of generating path can be used to define a general rtansform. If on, they only affect the orientation preserving/reversing of the transform."), "similar_only", &wr, this, false), maxComplexity(_("Max complexity"), _("Disable effect if the output is too complex"), "maxComplexity", &wr, this, 1000) { registerParameter( dynamic_cast<Parameter *>(&generator) ); registerParameter( dynamic_cast<Parameter *>(&nbgenerations) ); registerParameter( dynamic_cast<Parameter *>(&drawall) ); registerParameter( dynamic_cast<Parameter *>(&reftype) ); + registerParameter( dynamic_cast<Parameter *>(&similar_only) ); registerParameter( dynamic_cast<Parameter *>(&maxComplexity) ); nbgenerations.param_make_integer(); @@ -107,6 +109,11 @@ LPEVonKoch::doEffect_path (std::vector<Geom::Path> const & path_in) Point p = generating_path[i].pointAt(1); Point u = generating_path[i].pointAt(2)-p; Point v = p-generating_path[i].pointAt(0); + if (similar_only){ + int sign = (u[X]*v[Y]-u[Y]*v[X]>=0?1:-1); + v[X] = -u[Y]*sign; + v[Y] = u[X]*sign; + } m = Matrix(u[X], u[Y],v[X], v[Y], p[X], p[Y]); m = m0*m; transforms.push_back(m); diff --git a/src/live_effects/lpe-vonkoch.h b/src/live_effects/lpe-vonkoch.h index 4909b8730..8b7d0c62e 100644 --- a/src/live_effects/lpe-vonkoch.h +++ b/src/live_effects/lpe-vonkoch.h @@ -52,6 +52,7 @@ public: private: ScalarParam nbgenerations; VonKochPathParam generator; + BoolParam similar_only; BoolParam drawall; EnumParam<VonKochRefType> reftype; ScalarParam maxComplexity; |
