Code

Merge and cleanup of GSoC C++-ification project.
[inkscape.git] / src / sp-item-transform.cpp
index e401f437cfe5d9aa2241357f1fb9b50841914bc6..81780220cae38fc62becf485ce00f6786de8491e 100644 (file)
@@ -1,5 +1,3 @@
-#define __SP_ITEM_TRANSFORM_C__
-
 /*
  * Transforming single items
  *
@@ -8,6 +6,7 @@
  *   Frank Felfe <innerspace@iname.com>
  *   bulia byak <buliabyak@gmail.com>
  *   Johan Engelen <goejendaagh@zonnet.nl>
+ *   Abhishek Sharma
  *
  * Copyright (C) 1999-2008 authors
  *
@@ -25,9 +24,9 @@ sp_item_rotate_rel(SPItem *item, Geom::Rotate const &rotation)
     Geom::Matrix affine = Geom::Matrix(s).inverse() * Geom::Matrix(rotation) * Geom::Matrix(s);
 
     // Rotate item.
-    sp_item_set_i2d_affine(item, sp_item_i2d_affine(item) * (Geom::Matrix)affine);
+    item->set_i2d_affine(item->i2d_affine() * (Geom::Matrix)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);
+    item->doWriteTransform(SP_OBJECT_REPR(item), item->transform);
 
     // Restore the center position (it's changed because the bbox center changed)
     if (item->isCenterSet()) {
@@ -39,11 +38,11 @@ sp_item_rotate_rel(SPItem *item, Geom::Rotate const &rotation)
 void
 sp_item_scale_rel (SPItem *item, Geom::Scale const &scale)
 {
-    Geom::OptRect bbox = sp_item_bbox_desktop(item);
+    Geom::OptRect bbox = item->getBboxDesktop();
     if (bbox) {
         Geom::Translate const s(bbox->midpoint()); // use getCenter?
-        sp_item_set_i2d_affine(item, sp_item_i2d_affine(item) * s.inverse() * scale * s);
-        sp_item_write_transform(item, SP_OBJECT_REPR(item), item->transform);
+        item->set_i2d_affine(item->i2d_affine() * s.inverse() * scale * s);
+        item->doWriteTransform(SP_OBJECT_REPR(item), item->transform);
     }
 }
 
@@ -56,8 +55,8 @@ sp_item_skew_rel (SPItem *item, double skewX, double skewY)
     Geom::Matrix const skew(1, skewY, skewX, 1, 0, 0);
     Geom::Matrix affine = Geom::Matrix(s).inverse() * skew * Geom::Matrix(s);
 
-    sp_item_set_i2d_affine(item, sp_item_i2d_affine(item) * affine);
-    sp_item_write_transform(item, SP_OBJECT_REPR(item), item->transform);
+    item->set_i2d_affine(item->i2d_affine() * affine);
+    item->doWriteTransform(SP_OBJECT_REPR(item), item->transform);
 
     // Restore the center position (it's changed because the bbox center changed)
     if (item->isCenterSet()) {
@@ -68,9 +67,9 @@ sp_item_skew_rel (SPItem *item, double skewX, double skewY)
 
 void sp_item_move_rel(SPItem *item, Geom::Translate const &tr)
 {
-       sp_item_set_i2d_affine(item, sp_item_i2d_affine(item) * tr);
+       item->set_i2d_affine(item->i2d_affine() * tr);
 
-       sp_item_write_transform(item, SP_OBJECT_REPR(item), item->transform);
+       item->doWriteTransform(SP_OBJECT_REPR(item), item->transform);
 }
 
 /*