diff options
| author | Diederik van Lierop <mail@diedenrezi.nl> | 2009-03-13 20:15:31 +0000 |
|---|---|---|
| committer | dvlierop2 <dvlierop2@users.sourceforge.net> | 2009-03-13 20:15:31 +0000 |
| commit | 66a5d8abdc01c524d02064b537d7b0d167b15dda (patch) | |
| tree | 0101736dd4665e61682f965fc76d54c60779ceb7 /src/knot-holder-entity.cpp | |
| parent | remove desktop-affine.h and refactor sp_desktop_dt2doc_* calls (diff) | |
| download | inkscape-66a5d8abdc01c524d02064b537d7b0d167b15dda.tar.gz inkscape-66a5d8abdc01c524d02064b537d7b0d167b15dda.zip | |
* Implement constrained snapping of knots
* Implement snapping of the rectangle's radius handles
* Line snappers: set the snap target in the derived class instead of in findBestSnap()
(bzr r7479)
Diffstat (limited to '')
| -rw-r--r-- | src/knot-holder-entity.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/knot-holder-entity.cpp b/src/knot-holder-entity.cpp index df58d356a..4225dd9e3 100644 --- a/src/knot-holder-entity.cpp +++ b/src/knot-holder-entity.cpp @@ -97,6 +97,18 @@ KnotHolderEntity::snap_knot_position(Geom::Point const &p) return s * i2d.inverse(); } +Geom::Point +KnotHolderEntity::snap_knot_position_constrained(Geom::Point const &p, Inkscape::Snapper::ConstraintLine const &constraint) +{ + Geom::Matrix const i2d (sp_item_i2d_affine(item)); + Geom::Point s = p * i2d; + Inkscape::Snapper::ConstraintLine transformed_constraint = Inkscape::Snapper::ConstraintLine(constraint.getPoint() * i2d, (constraint.getPoint() + constraint.getDirection()) * i2d - constraint.getPoint() * i2d); + SnapManager &m = desktop->namedview->snap_manager; + m.setup(desktop, true, item); + m.constrainedSnapReturnByRef(Inkscape::SnapPreferences::SNAPPOINT_NODE, s, Inkscape::SNAPSOURCE_HANDLE, transformed_constraint); + return s * i2d.inverse(); +} + /* Pattern manipulation */ |
