diff options
Diffstat (limited to 'src/object-snapper.h')
| -rw-r--r-- | src/object-snapper.h | 75 |
1 files changed, 55 insertions, 20 deletions
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<SPItem const *> const &it) const; + SnappedPoint _doFreeSnap(Inkscape::Snapper::PointType const &t, + NR::Point const &p, + std::list<SPItem const *> const &it) const; - SnappedPoint _doConstrainedSnap(NR::Point const &p, - ConstraintLine const &c, - std::list<SPItem const *> const &it) const; + SnappedPoint _doConstrainedSnap(Inkscape::Snapper::PointType const &t, + NR::Point const &p, + ConstraintLine const &c, + std::list<SPItem const *> const &it) const; void _findCandidates(std::list<SPItem*>& c, - SPObject* r, - std::list<SPItem const *> const &it, - NR::Point const &p) const; + SPObject* r, + std::list<SPItem const *> const &it, + NR::Point const &p) const; + + void _snapNodes(Inkscape::Snapper::PointType const &t, + Inkscape::SnappedPoint &s, + NR::Point const &p, + std::list<SPItem*> const &cand) const; + + void _snapPaths(Inkscape::Snapper::PointType const &t, + Inkscape::SnappedPoint &s, + NR::Point const &p, + std::list<SPItem*> const &cand) const; - void _snapNodes(Inkscape::SnappedPoint &s, NR::Point const &p, std::list<SPItem*> const &cand) const; - void _snapPaths(Inkscape::SnappedPoint &s, NR::Point const &p, std::list<SPItem*> 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; }; } |
