diff options
| author | Jabier Arraiza <jabier.arraiza@marker.es> | 2018-10-01 01:10:05 +0000 |
|---|---|---|
| committer | Jabier Arraiza <jabier.arraiza@marker.es> | 2018-10-01 01:10:05 +0000 |
| commit | 89b763d897e805a577f81dc0dccab4b75eb253cf (patch) | |
| tree | 88cf5fee43de1ac9647134cea9528a271410bb9f /src/object/sp-path.cpp | |
| parent | Improve calls to document_units (diff) | |
| download | inkscape-89b763d897e805a577f81dc0dccab4b75eb253cf.tar.gz inkscape-89b763d897e805a577f81dc0dccab4b75eb253cf.zip | |
Improvements to transforms in LPE
Diffstat (limited to '')
| -rw-r--r-- | src/object/sp-path.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/object/sp-path.cpp b/src/object/sp-path.cpp index cf8c0ad10..d951d1738 100644 --- a/src/object/sp-path.cpp +++ b/src/object/sp-path.cpp @@ -326,17 +326,21 @@ Geom::Affine SPPath::set_transform(Geom::Affine const &transform) { if (!_curve) { // 0 nodes, nothing to transform return Geom::identity(); } + // Only set transform with proportional scaling + if (!transform.withoutTranslation().isUniformScale()) { + // Adjust livepatheffect + if (hasPathEffect() && pathEffectsEnabled()) { + this->adjust_livepatheffect(transform.inverse()); + return transform; + } + } + // TODO: try to remove CLONE_ORIGINAL from here // Transform the original-d path if this is a valid LPE this, other else the (ordinary) path if (_curve_before_lpe && hasPathEffectRecursive()) { - if (this->hasPathEffectOfType(Inkscape::LivePathEffect::CLONE_ORIGINAL) || - this->hasPathEffectOfType(Inkscape::LivePathEffect::BEND_PATH) || - this->hasPathEffectOfType(Inkscape::LivePathEffect::POWERCLIP) || - this->hasPathEffectOfType(Inkscape::LivePathEffect::FILL_BETWEEN_MANY) || - this->hasPathEffectOfType(Inkscape::LivePathEffect::FILL_BETWEEN_STROKES) ) + if (this->hasPathEffectOfType(Inkscape::LivePathEffect::CLONE_ORIGINAL)) { // if path has this LPE applied, don't write the transform to the pathdata, but write it 'unoptimized' // also if the effect is type BEND PATH to fix bug #179842 - this->adjust_livepatheffect(transform); return transform; } else { _curve_before_lpe->transform(transform); |
