diff options
| author | Jabier Arraiza <jabier.arraiza@marker.es> | 2018-04-14 16:50:20 +0000 |
|---|---|---|
| committer | Jabier Arraiza <jabier.arraiza@marker.es> | 2018-04-14 16:50:20 +0000 |
| commit | 75fa525a68af3ac9826dca66f00fb01f6efa3c51 (patch) | |
| tree | 3c866e9cb68cbef7572cd79ce9eb687d9f97c050 /src/live_effects/lpe-fill-between-strokes.cpp | |
| parent | Add files missing in last commit (FontSelector). (diff) | |
| download | inkscape-75fa525a68af3ac9826dca66f00fb01f6efa3c51.tar.gz inkscape-75fa525a68af3ac9826dca66f00fb01f6efa3c51.zip | |
Fixes to transforms on LPE
Diffstat (limited to 'src/live_effects/lpe-fill-between-strokes.cpp')
| -rw-r--r-- | src/live_effects/lpe-fill-between-strokes.cpp | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/src/live_effects/lpe-fill-between-strokes.cpp b/src/live_effects/lpe-fill-between-strokes.cpp index 37d13830c..5f4fd4fc2 100644 --- a/src/live_effects/lpe-fill-between-strokes.cpp +++ b/src/live_effects/lpe-fill-between-strokes.cpp @@ -31,7 +31,6 @@ LPEFillBetweenStrokes::LPEFillBetweenStrokes(LivePathEffectObject *lpeobject) : registerParameter(&allow_transforms); registerParameter(&join); registerParameter(&close); - transformmultiply = false; } LPEFillBetweenStrokes::~LPEFillBetweenStrokes() @@ -43,26 +42,29 @@ void LPEFillBetweenStrokes::doEffect (SPCurve * curve) { if (curve) { Geom::Affine affine = Geom::identity(); - if(!allow_transforms && !transformmultiply) { - sp_svg_transform_read(SP_ITEM(sp_lpe_item)->getAttribute("transform"), &affine); - } - if(transformmultiply) { - transformmultiply = false; + if(!allow_transforms) { + SP_ITEM(sp_lpe_item)->setAttribute("transform", NULL); } if ( linked_path.linksToPath() && second_path.linksToPath() && linked_path.getObject() && second_path.getObject() ) { Geom::PathVector linked_pathv = linked_path.get_pathvector(); + SPItem * linked1 = linked_path.getObject(); + if (linked1) { + linked_pathv *= linked1->transform; + } Geom::PathVector second_pathv = second_path.get_pathvector(); + SPItem * linked2 = second_path.getObject(); + if (linked2) { + second_pathv*= linked2->transform; + } Geom::PathVector result_linked_pathv; Geom::PathVector result_second_pathv; - Geom::Affine second_transform = second_path.getObject()->getRelativeTransform(linked_path.getObject()); - for (Geom::PathVector::iterator iter = linked_pathv.begin(); iter != linked_pathv.end(); ++iter) { result_linked_pathv.push_back((*iter)); } for (Geom::PathVector::iterator iter = second_pathv.begin(); iter != second_pathv.end(); ++iter) { - result_second_pathv.push_back((*iter) * second_transform); + result_second_pathv.push_back((*iter)); } if ( !result_linked_pathv.empty() && !result_second_pathv.empty() && !result_linked_pathv.front().closed() ) { @@ -131,16 +133,6 @@ void LPEFillBetweenStrokes::doEffect (SPCurve * curve) } } -void -LPEFillBetweenStrokes::transform_multiply(Geom::Affine const& postmul, bool set) -{ - if(!allow_transforms && sp_lpe_item) { - SP_ITEM(sp_lpe_item)->transform *= postmul.inverse(); - transformmultiply = true; - sp_lpe_item_update_patheffect(sp_lpe_item, false, false); - } -} - } // namespace LivePathEffect } /* namespace Inkscape */ |
