summaryrefslogtreecommitdiffstats
path: root/src/object
diff options
context:
space:
mode:
authorShlomi Fish <shlomif@shlomifish.org>2019-06-12 17:36:26 +0000
committerShlomi Fish <shlomif@shlomifish.org>2019-06-12 17:36:26 +0000
commit845d677a3bd7a39320e32b6c53fa70963a92ba87 (patch)
tree0ddee54aa21e0e3122388b3e57fbb5602debacfd /src/object
parentRefactor: convert rotate_rel() to a method. (diff)
downloadinkscape-845d677a3bd7a39320e32b6c53fa70963a92ba87.tar.gz
inkscape-845d677a3bd7a39320e32b6c53fa70963a92ba87.zip
Refactoring: replace funcs with methods.
I hereby disclaim any implicit or explicit ownership of my changes in this changeset, and put them under a multiple licence consisting of your choice of one of more of: - The CC0 / Public Domain - https://creativecommons.org/choose/zero/ . - The MIT / Expat license - https://en.wikipedia.org/wiki/MIT_License - The default licence of your project - The https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License - version 2.1 or higher - The https://en.wikipedia.org/wiki/GNU_General_Public_License - version 2 or higher - Any licence in the 2018-Aug-27 popular licenses list of https://opensource.org/licenses - The https://en.wikipedia.org/wiki/Apache_License version 2.0 or later - The https://en.wikipedia.org/wiki/Artistic_License version 2.0 or later - The https://en.wikipedia.org/wiki/ISC_license - The https://opensource.org/licenses/BSD-2-Clause Crediting me will be nice, but not mandatory, and you can change the licence of the project without needing my permission.
Diffstat (limited to 'src/object')
-rw-r--r--src/object/sp-item-group.cpp2
-rw-r--r--src/object/sp-item-transform.cpp35
-rw-r--r--src/object/sp-item-transform.h4
-rw-r--r--src/object/sp-item.cpp36
-rw-r--r--src/object/sp-item.h3
5 files changed, 40 insertions, 40 deletions
diff --git a/src/object/sp-item-group.cpp b/src/object/sp-item-group.cpp
index acc08d175..981308b0e 100644
--- a/src/object/sp-item-group.cpp
+++ b/src/object/sp-item-group.cpp
@@ -733,7 +733,7 @@ void SPGroup::translateChildItems(Geom::Translate const &tr)
for (auto& o: children) {
SPItem *item = dynamic_cast<SPItem *>(&o);
if ( item ) {
- sp_item_move_rel(item, tr);
+ item->move_rel(tr);
}
}
}
diff --git a/src/object/sp-item-transform.cpp b/src/object/sp-item-transform.cpp
index 4fbe0bcc5..e01571ef4 100644
--- a/src/object/sp-item-transform.cpp
+++ b/src/object/sp-item-transform.cpp
@@ -21,41 +21,6 @@
#include <glib.h>
-void sp_item_scale_rel(SPItem *item, Geom::Scale const &scale)
-{
- Geom::OptRect bbox = item->desktopVisualBounds();
- if (bbox) {
- Geom::Translate const s(bbox->midpoint()); // use getCenter?
- item->set_i2d_affine(item->i2dt_affine() * s.inverse() * scale * s);
- item->doWriteTransform(item->transform);
- }
-}
-
-void sp_item_skew_rel(SPItem *item, double skewX, double skewY)
-{
- Geom::Point center = item->getCenter();
- Geom::Translate const s(item->getCenter());
-
- Geom::Affine const skew(1, skewY, skewX, 1, 0, 0);
- Geom::Affine affine = Geom::Affine(s).inverse() * skew * Geom::Affine(s);
-
- item->set_i2d_affine(item->i2dt_affine() * affine);
- item->doWriteTransform(item->transform);
-
- // Restore the center position (it's changed because the bbox center changed)
- if (item->isCenterSet()) {
- item->setCenter(center * affine);
- item->updateRepr();
- }
-}
-
-void sp_item_move_rel(SPItem *item, Geom::Translate const &tr)
-{
- item->set_i2d_affine(item->i2dt_affine() * tr);
-
- item->doWriteTransform(item->transform);
-}
-
/**
* Calculate the affine transformation required to transform one visual bounding box into another, accounting for a uniform strokewidth.
*
diff --git a/src/object/sp-item-transform.h b/src/object/sp-item-transform.h
index 02c8362dd..4c7401409 100644
--- a/src/object/sp-item-transform.h
+++ b/src/object/sp-item-transform.h
@@ -14,10 +14,6 @@
class SPItem;
-void sp_item_scale_rel (SPItem *item, Geom::Scale const &scale);
-void sp_item_skew_rel (SPItem *item, double skewX, double skewY);
-void sp_item_move_rel(SPItem *item, Geom::Translate const &tr);
-
Geom::Affine get_scale_transform_for_uniform_stroke (Geom::Rect const &bbox_visual, double stroke_x, double stroke_y, bool transform_stroke, bool preserve, double x0, double y0, double x1, double y1);
Geom::Affine get_scale_transform_for_variable_stroke (Geom::Rect const &bbox_visual, Geom::Rect const &bbox_geom, bool transform_stroke, bool preserve, double x0, double y0, double x1, double y1);
Geom::Rect get_visual_bbox (Geom::OptRect const &initial_geom_bbox, Geom::Affine const &abs_affine, double const initial_strokewidth, bool const transform_stroke);
diff --git a/src/object/sp-item.cpp b/src/object/sp-item.cpp
index ee54c8ada..7d8ab4b50 100644
--- a/src/object/sp-item.cpp
+++ b/src/object/sp-item.cpp
@@ -1733,6 +1733,42 @@ void SPItem::rotate_rel(Geom::Rotate const &rotation)
updateRepr();
}
}
+
+void SPItem::scale_rel(Geom::Scale const &scale)
+{
+ Geom::OptRect bbox = desktopVisualBounds();
+ if (bbox) {
+ Geom::Translate const s(bbox->midpoint()); // use getCenter?
+ set_i2d_affine(i2dt_affine() * s.inverse() * scale * s);
+ doWriteTransform(transform);
+ }
+}
+
+void SPItem::skew_rel(double skewX, double skewY)
+{
+ Geom::Point center = getCenter();
+ Geom::Translate const s(getCenter());
+
+ Geom::Affine const skew(1, skewY, skewX, 1, 0, 0);
+ Geom::Affine affine = Geom::Affine(s).inverse() * skew * Geom::Affine(s);
+
+ set_i2d_affine(i2dt_affine() * affine);
+ doWriteTransform(transform);
+
+ // Restore the center position (it's changed because the bbox center changed)
+ if (isCenterSet()) {
+ setCenter(center * affine);
+ updateRepr();
+ }
+}
+
+void SPItem::move_rel( Geom::Translate const &tr)
+{
+ set_i2d_affine(i2dt_affine() * tr);
+
+ doWriteTransform(transform);
+}
+
/*
Local Variables:
mode:c++
diff --git a/src/object/sp-item.h b/src/object/sp-item.h
index 4ff3ca460..8a4eb7e78 100644
--- a/src/object/sp-item.h
+++ b/src/object/sp-item.h
@@ -396,6 +396,9 @@ private:
public:
void rotate_rel(Geom::Rotate const &rotation);
+ void scale_rel(Geom::Scale const &scale);
+ void skew_rel(double skewX, double skewY);
+ void move_rel( Geom::Translate const &tr);
void build(SPDocument *document, Inkscape::XML::Node *repr) override;
void release() override;
void set(SPAttributeEnum key, char const* value) override;