X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fline-snapper.h;h=4c971d23817500634e9e10cb98aa83c819058b1d;hb=958c867c4ffb2cafbc87fb484a20c20dab458f3b;hp=581466d330533b4ebbdd005c4d31440525253b9e;hpb=6b15695578f07a3f72c4c9475c1a261a3021472a;p=inkscape.git diff --git a/src/line-snapper.h b/src/line-snapper.h index 581466d33..4c971d238 100644 --- a/src/line-snapper.h +++ b/src/line-snapper.h @@ -7,6 +7,9 @@ * * Authors: * Carl Hetherington + * Diederik van Lierop + * + * Copyright (C) 1999-2008 Authors * * Released under GNU GPL, read the file 'COPYING' for more information. */ @@ -19,24 +22,40 @@ namespace Inkscape class LineSnapper : public Snapper { public: - LineSnapper(SPNamedView const *nv, NR::Coord const d); + LineSnapper(SnapManager *sm, Geom::Coord const d); + + void freeSnap(SnappedConstraints &sc, + Inkscape::SnapPreferences::PointType const &t, + Geom::Point const &p, + SnapSourceType const &source_type, + bool const &first_point, + Geom::OptRect const &bbox_to_snap, + std::vector const *it, + std::vector > *unselected_nodes) const; + + void constrainedSnap(SnappedConstraints &sc, + Inkscape::SnapPreferences::PointType const &t, + Geom::Point const &p, + SnapSourceType const &source_type, + bool const &first_point, + Geom::OptRect const &bbox_to_snap, + ConstraintLine const &c, + std::vector const *it) const; protected: - typedef std::list > LineList; + typedef std::list > LineList; + //first point is a vector normal to the line + //second point is a point on the line private: - SnappedPoint _doFreeSnap(NR::Point const &p, - std::list const &it) const; - - SnappedPoint _doConstrainedSnap(NR::Point const &p, - NR::Point const &c, - std::list const &it) const; - /** * \param p Point that we are trying to snap. * \return List of lines that we should try snapping to. */ - virtual LineList _getSnapLines(NR::Point const &p) const = 0; + virtual LineList _getSnapLines(Geom::Point const &p) const = 0; + + virtual void _addSnappedLine(SnappedConstraints &sc, Geom::Point const snapped_point, Geom::Coord const snapped_distance, SnapSourceType const &source, Geom::Point const normal_to_line, Geom::Point const point_on_line) const = 0; + virtual void _addSnappedPoint(SnappedConstraints &sc, Geom::Point const snapped_point, Geom::Coord const snapped_distance, SnapSourceType const &source) const = 0; }; }