X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fsp-item-transform.cpp;h=4caf155bfdad7ec4cb771e4e418dfbfb39264306;hb=8d358698ecbf192ba7c6dc05d4f7de7592753d9f;hp=08c4d167b2c1672be331110a0df3e0a736618ace;hpb=c350508cfbe7720966a9b53c84388ab7e5f2e5ca;p=inkscape.git diff --git a/src/sp-item-transform.cpp b/src/sp-item-transform.cpp index 08c4d167b..4caf155bf 100644 --- a/src/sp-item-transform.cpp +++ b/src/sp-item-transform.cpp @@ -33,7 +33,7 @@ sp_item_rotate_rel(SPItem *item, NR::rotate const &rotation) NR::Matrix affine = NR::Matrix(inverse(s)) * NR::Matrix(rotation) * NR::Matrix(s); // Rotate item. - sp_item_set_i2d_affine(item, sp_item_i2d_affine(item) * affine); + sp_item_set_i2d_affine(item, sp_item_i2d_affine(item) * to_2geom(affine)); // Use each item's own transform writer, consistent with sp_selection_apply_affine() sp_item_write_transform(item, SP_OBJECT_REPR(item), item->transform); @@ -49,7 +49,7 @@ sp_item_scale_rel (SPItem *item, NR::scale const &scale) NR::Maybe bbox = sp_item_bbox_desktop(item); if (bbox) { NR::translate const s(bbox->midpoint()); // use getCenter? - sp_item_set_i2d_affine(item, sp_item_i2d_affine(item) * inverse(s) * scale * s); + sp_item_set_i2d_affine(item, sp_item_i2d_affine(item) * to_2geom(NR::Matrix(inverse(s)) * scale * s)); sp_item_write_transform(item, SP_OBJECT_REPR(item), item->transform); } } @@ -63,7 +63,7 @@ sp_item_skew_rel (SPItem *item, double skewX, double skewY) NR::Matrix const skew(1, skewY, skewX, 1, 0, 0); NR::Matrix affine = NR::Matrix(inverse(s)) * skew * NR::Matrix(s); - sp_item_set_i2d_affine(item, sp_item_i2d_affine(item) * affine); + sp_item_set_i2d_affine(item, sp_item_i2d_affine(item) * to_2geom(affine)); sp_item_write_transform(item, SP_OBJECT_REPR(item), item->transform); // Restore the center position (it's changed because the bbox center changed) @@ -74,7 +74,7 @@ sp_item_skew_rel (SPItem *item, double skewX, double skewY) void sp_item_move_rel(SPItem *item, NR::translate const &tr) { - sp_item_set_i2d_affine(item, sp_item_i2d_affine(item) * tr); + sp_item_set_i2d_affine(item, sp_item_i2d_affine(item) * to_2geom(tr)); sp_item_write_transform(item, SP_OBJECT_REPR(item), item->transform); }