summaryrefslogtreecommitdiffstats
path: root/src/live_effects/lpe-fill-between-strokes.cpp
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2018-04-14 16:50:20 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2018-04-14 16:50:20 +0000
commit75fa525a68af3ac9826dca66f00fb01f6efa3c51 (patch)
tree3c866e9cb68cbef7572cd79ce9eb687d9f97c050 /src/live_effects/lpe-fill-between-strokes.cpp
parentAdd files missing in last commit (FontSelector). (diff)
downloadinkscape-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.cpp30
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 */