diff options
Diffstat (limited to 'src/snap.cpp')
| -rw-r--r-- | src/snap.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/snap.cpp b/src/snap.cpp index c585a9790..07e76362d 100644 --- a/src/snap.cpp +++ b/src/snap.cpp @@ -26,6 +26,8 @@ #include "inkscape.h" #include "desktop.h" +#include "sp-guide.h" +using std::vector; /** * Construct a SnapManager for a SPNamedView. @@ -145,6 +147,16 @@ bool SnapManager::getSnapModeNode() const return guide.getSnapFrom(Inkscape::Snapper::SNAPPOINT_NODE); } +void SnapManager::setSnapModeGuide(bool enabled) +{ + object.setSnapFrom(Inkscape::Snapper::SNAPPOINT_GUIDE, enabled); +} + +bool SnapManager::getSnapModeGuide() const +{ + return object.getSnapFrom(Inkscape::Snapper::SNAPPOINT_GUIDE); +} + /** * Try to snap a point to any interested snappers. * @@ -317,6 +329,21 @@ Inkscape::SnappedPoint SnapManager::constrainedSnap(Inkscape::Snapper::PointType return r; } +Inkscape::SnappedPoint SnapManager::guideSnap(NR::Point const &p, + SPGuide const &guide) const +{ + Inkscape::ObjectSnapper::DimensionToSnap snap_dim; + if (guide.normal == component_vectors[NR::Y]) { + snap_dim = Inkscape::ObjectSnapper::SNAP_Y; + } else if (guide.normal == component_vectors[NR::X]) { + snap_dim = Inkscape::ObjectSnapper::SNAP_X; + } else { + g_warning("WARNING: snapping of angled guides is not supported yet!"); + snap_dim = Inkscape::ObjectSnapper::SNAP_XY; + } + + return object.guideSnap(p, snap_dim); +} /** |
