summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDiederik van Lierop <mail@diedenrezi.nl>2007-03-30 19:04:54 +0000
committerdvlierop2 <dvlierop2@users.sourceforge.net>2007-03-30 19:04:54 +0000
commit50f5aba16205a6241855bdf0ed9d2161d8ebf897 (patch)
tree4ea334e454e5bc9411d09c9e4e4899d24837b25b /src
parentfix the undo-while-drawing crash in star and spiral (diff)
downloadinkscape-50f5aba16205a6241855bdf0ed9d2161d8ebf897.tar.gz
inkscape-50f5aba16205a6241855bdf0ed9d2161d8ebf897.zip
add a snappoint at the rotation-axis of any shape
(bzr r2788)
Diffstat (limited to 'src')
-rw-r--r--src/sp-item.cpp2
-rw-r--r--src/sp-item.h2
-rw-r--r--src/sp-shape.cpp4
3 files changed, 6 insertions, 2 deletions
diff --git a/src/sp-item.cpp b/src/sp-item.cpp
index 27f6e4ce3..28d8ed6bc 100644
--- a/src/sp-item.cpp
+++ b/src/sp-item.cpp
@@ -296,7 +296,7 @@ bool SPItem::isCenterSet() {
return (transform_center_x != 0 || transform_center_y != 0);
}
-NR::Point SPItem::getCenter() {
+NR::Point SPItem::getCenter() const {
NR::Maybe<NR::Rect> bbox = getBounds(sp_item_i2d_affine(this));
if (bbox) {
return bbox->midpoint() + NR::Point (this->transform_center_x, this->transform_center_y);
diff --git a/src/sp-item.h b/src/sp-item.h
index eb7043096..9359763b5 100644
--- a/src/sp-item.h
+++ b/src/sp-item.h
@@ -138,7 +138,7 @@ struct SPItem : public SPObject {
void setCenter(NR::Point object_centre);
void unsetCenter();
bool isCenterSet();
- NR::Point getCenter();
+ NR::Point getCenter() const;
bool isVisibleAndUnlocked() const;
diff --git a/src/sp-shape.cpp b/src/sp-shape.cpp
index 453de5650..a37da6840 100644
--- a/src/sp-shape.cpp
+++ b/src/sp-shape.cpp
@@ -1022,6 +1022,10 @@ static void sp_shape_snappoints(SPItem const *item, SnapPointsIter p)
*p = bp->c(3) * i2d;
bp++;
}
+
+ // Additionaly, add the center for snapping
+ *p = shape->getCenter();
+
}