X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fguide-snapper.cpp;h=41e2cdb0708bc480366cda9317277bb9570ec661;hb=e950f1f1abd91a298d2f9120aa48080ddc4809b3;hp=9fd13705c26cb2ff12ded4e823a534a69e3145fb;hpb=12286cef3afff20da8623358be2fddab64c71401;p=inkscape.git diff --git a/src/guide-snapper.cpp b/src/guide-snapper.cpp index 9fd13705c..41e2cdb07 100644 --- a/src/guide-snapper.cpp +++ b/src/guide-snapper.cpp @@ -22,23 +22,17 @@ Inkscape::GuideSnapper::GuideSnapper(SPNamedView const *nv, NR::Coord const d) : } -Inkscape::GuideSnapper::LineList Inkscape::GuideSnapper::_getSnapLines(NR::Point const &p) const +Inkscape::GuideSnapper::LineList Inkscape::GuideSnapper::_getSnapLines(NR::Point const &/*p*/) const { LineList s; - if ( NULL == _named_view || willSnapSomething() == false) { + if ( NULL == _named_view || ThisSnapperMightSnap() == false) { return s; } for (GSList const *l = _named_view->guides; l != NULL; l = l->next) { SPGuide const *g = SP_GUIDE(l->data); - - /* We assume here that guides are horizontal or vertical */ - if (g->normal == component_vectors[NR::X]) { - s.push_back(std::make_pair(NR::X, g->position)); - } else { - s.push_back(std::make_pair(NR::Y, g->position)); - } + s.push_back(std::make_pair(g->normal_to_line, g->point_on_line)); } return s; @@ -47,9 +41,15 @@ Inkscape::GuideSnapper::LineList Inkscape::GuideSnapper::_getSnapLines(NR::Point /** * \return true if this Snapper will snap at least one kind of point. */ -bool Inkscape::GuideSnapper::willSnapSomething() const +bool Inkscape::GuideSnapper::ThisSnapperMightSnap() const +{ + return _named_view == NULL ? false : (_snap_enabled && _snap_from != 0 && _named_view->showguides); +} + +void Inkscape::GuideSnapper::_addSnappedLine(SnappedConstraints &sc, NR::Point const snapped_point, NR::Coord const snapped_distance, NR::Point const normal_to_line, NR::Point const point_on_line) const { - return _named_view == NULL ? false : (_enabled && _snap_to != 0 && _named_view->showguides); + SnappedLine dummy = SnappedLine(snapped_point, snapped_distance, getSnapperTolerance(), getSnapperAlwaysSnap(), normal_to_line, point_on_line); + sc.guide_lines.push_back(dummy); } /*