From b79f13c5491131606a50a112a296e1011ddc91ee Mon Sep 17 00:00:00 2001 From: Diederik van Lierop Date: Sat, 28 Jul 2007 15:47:49 +0000 Subject: 1) Changes to snapping preferences dialog 2) Strict snapping implemented, i.e. bbox only to bbox and nodes only to paths/nodes 3) Renaming of some constants to improve readability (bzr r3331) --- src/object-snapper.h | 75 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 55 insertions(+), 20 deletions(-) (limited to 'src/object-snapper.h') diff --git a/src/object-snapper.h b/src/object-snapper.h index 47ac14545..6556b0a24 100644 --- a/src/object-snapper.h +++ b/src/object-snapper.h @@ -27,42 +27,77 @@ class ObjectSnapper : public Snapper public: ObjectSnapper(SPNamedView const *nv, NR::Coord const d); - void setSnapToNodes(bool s) { - _snap_to_nodes = s; + void setSnapToItemNodes(bool s) { + _snap_to_itemnodes = s; } - bool getSnapToNodes() const { - return _snap_to_nodes; + bool getSnapToItemNodes() const { + return _snap_to_itemnodes; } - void setSnapToPaths(bool s) { - _snap_to_paths = s; + void setSnapToItemPaths(bool s) { + _snap_to_itempaths = s; } - bool getSnapToPaths() const { - return _snap_to_paths; + bool getSnapToItemPaths() const { + return _snap_to_itempaths; + } + + void setSnapToBBoxNodes(bool s) { + _snap_to_bboxnodes = s; + } + + bool getSnapToBBoxNodes() const { + return _snap_to_bboxnodes; + } + + void setSnapToBBoxPaths(bool s) { + _snap_to_bboxpaths = s; + } + + bool getSnapToBBoxPaths() const { + return _snap_to_bboxpaths; + } + + bool setStrictSnapping(bool enabled) { + _strict_snapping = enabled; } bool ThisSnapperMightSnap() const; private: - SnappedPoint _doFreeSnap(NR::Point const &p, - std::list const &it) const; + SnappedPoint _doFreeSnap(Inkscape::Snapper::PointType const &t, + NR::Point const &p, + std::list const &it) const; - SnappedPoint _doConstrainedSnap(NR::Point const &p, - ConstraintLine const &c, - std::list const &it) const; + SnappedPoint _doConstrainedSnap(Inkscape::Snapper::PointType const &t, + NR::Point const &p, + ConstraintLine const &c, + std::list const &it) const; void _findCandidates(std::list& c, - SPObject* r, - std::list const &it, - NR::Point const &p) const; + SPObject* r, + std::list const &it, + NR::Point const &p) const; + + void _snapNodes(Inkscape::Snapper::PointType const &t, + Inkscape::SnappedPoint &s, + NR::Point const &p, + std::list const &cand) const; + + void _snapPaths(Inkscape::Snapper::PointType const &t, + Inkscape::SnappedPoint &s, + NR::Point const &p, + std::list const &cand) const; - void _snapNodes(Inkscape::SnappedPoint &s, NR::Point const &p, std::list const &cand) const; - void _snapPaths(Inkscape::SnappedPoint &s, NR::Point const &p, std::list const &cand) const; + bool _snap_to_itemnodes; + bool _snap_to_itempaths; + bool _snap_to_bboxnodes; + bool _snap_to_bboxpaths; - bool _snap_to_nodes; - bool _snap_to_paths; + //if enabled, then bbox corners will only snap to bboxes, + //and nodes will only snap to nodes and paths + bool _strict_snapping; }; } -- cgit v1.2.3