summaryrefslogtreecommitdiffstats
path: root/src/splivarot.cpp
diff options
context:
space:
mode:
authorJohan B. C. Engelen <jbc.engelen@swissonline.ch>2010-08-29 16:33:10 +0000
committerJohan Engelen <goejendaagh@zonnet.nl>2010-08-29 16:33:10 +0000
commit94b59ee279e0940f22f1b99c77ea99559f56603f (patch)
tree6e265fa11f027ff938de5b34da3698b9b862b7e9 /src/splivarot.cpp
parentAdded inkscape.com to Win32 installer (should have been included in 0.48). (diff)
downloadinkscape-94b59ee279e0940f22f1b99c77ea99559f56603f.tar.gz
inkscape-94b59ee279e0940f22f1b99c77ea99559f56603f.zip
fix bug where bbox is calculated wrong for paths with markers when the path has a transform applied. the transform was applied twice (sp_shape_marker_get_transform_at_start already takes care of rotation and translation, and scale is taken care of by item_outline call within item_outline_add_marker)
Fixed bugs: - https://launchpad.net/bugs/624775 (bzr r9731)
Diffstat (limited to 'src/splivarot.cpp')
-rw-r--r--src/splivarot.cpp15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/splivarot.cpp b/src/splivarot.cpp
index db9f72975..2b7da7f8a 100644
--- a/src/splivarot.cpp
+++ b/src/splivarot.cpp
@@ -626,8 +626,7 @@ void sp_selected_path_outline_add_marker( SPObject *marker_object, Geom::Matrix
static
void item_outline_add_marker( SPObject const *marker_object, Geom::Matrix marker_transform,
- Geom::Scale stroke_scale, Geom::Matrix transform,
- Geom::PathVector* pathv_in )
+ Geom::Scale stroke_scale, Geom::PathVector* pathv_in )
{
SPMarker* marker = SP_MARKER (marker_object);
SPItem* marker_item = sp_item_first_item_child(SP_OBJECT(marker_object));
@@ -637,7 +636,7 @@ void item_outline_add_marker( SPObject const *marker_object, Geom::Matrix marker
tr = stroke_scale * tr;
}
// total marker transform
- tr = marker_item->transform * marker->c2p * tr * transform;
+ tr = marker_item->transform * marker->c2p * tr;
Geom::PathVector* marker_pathv = item_outline(marker_item);
@@ -792,7 +791,7 @@ Geom::PathVector* item_outline(SPItem const *item)
if ( SPObject *marker_obj = shape->marker[i] ) {
Geom::Matrix const m (sp_shape_marker_get_transform_at_start(pathv.front().front()));
item_outline_add_marker( marker_obj, m,
- Geom::Scale(i_style->stroke_width.computed), transform,
+ Geom::Scale(i_style->stroke_width.computed),
ret_pathv );
}
}
@@ -807,7 +806,7 @@ Geom::PathVector* item_outline(SPItem const *item)
{
Geom::Matrix const m (sp_shape_marker_get_transform_at_start(path_it->front()));
item_outline_add_marker( midmarker_obj, m,
- Geom::Scale(i_style->stroke_width.computed), transform,
+ Geom::Scale(i_style->stroke_width.computed),
ret_pathv );
}
// MID position
@@ -822,7 +821,7 @@ Geom::PathVector* item_outline(SPItem const *item)
*/
Geom::Matrix const m (sp_shape_marker_get_transform(*curve_it1, *curve_it2));
item_outline_add_marker( midmarker_obj, m,
- Geom::Scale(i_style->stroke_width.computed), transform,
+ Geom::Scale(i_style->stroke_width.computed),
ret_pathv);
++curve_it1;
@@ -834,7 +833,7 @@ Geom::PathVector* item_outline(SPItem const *item)
Geom::Curve const &lastcurve = path_it->back_default();
Geom::Matrix const m = sp_shape_marker_get_transform_at_end(lastcurve);
item_outline_add_marker( midmarker_obj, m,
- Geom::Scale(i_style->stroke_width.computed), transform,
+ Geom::Scale(i_style->stroke_width.computed),
ret_pathv );
}
}
@@ -853,7 +852,7 @@ Geom::PathVector* item_outline(SPItem const *item)
Geom::Matrix const m = sp_shape_marker_get_transform_at_end(lastcurve);
item_outline_add_marker( marker_obj, m,
- Geom::Scale(i_style->stroke_width.computed), transform,
+ Geom::Scale(i_style->stroke_width.computed),
ret_pathv );
}
}