diff options
| author | Diederik van Lierop <mail@diedenrezi.nl> | 2008-12-14 20:49:00 +0000 |
|---|---|---|
| committer | dvlierop2 <dvlierop2@users.sourceforge.net> | 2008-12-14 20:49:00 +0000 |
| commit | f643622c05d698103b68a0af90b96fadb021f815 (patch) | |
| tree | 69f647af0776d8896263ee9c6694d1a64e649f32 /src/object-snapper.h | |
| parent | Filter quality setting revised, seems to not crash when viewing filters.svg (diff) | |
| download | inkscape-f643622c05d698103b68a0af90b96fadb021f815.tar.gz inkscape-f643622c05d698103b68a0af90b96fadb021f815.zip | |
1) snap midpoints of line segments (both as source and as target)
2) snap intersections within a single shape (as source; as target was already implemented)
(bzr r7008)
Diffstat (limited to 'src/object-snapper.h')
| -rw-r--r-- | src/object-snapper.h | 58 |
1 files changed, 29 insertions, 29 deletions
diff --git a/src/object-snapper.h b/src/object-snapper.h index f235ae566..9972677e0 100644 --- a/src/object-snapper.h +++ b/src/object-snapper.h @@ -9,7 +9,7 @@ * Carl Hetherington <inkscape@carlh.net> * Diederik van Lierop <mail@diedenrezi.nl> * - * Copyright (C) 2005 - 2008 Authors + * Copyright (C) 2005 - 2008 Authors * * Released under GNU GPL, read the file 'COPYING' for more information */ @@ -26,31 +26,31 @@ namespace Inkscape { class SnapCandidate - + { public: SnapCandidate(SPItem* item, bool clip_or_mask, Geom::Matrix _additional_affine); ~SnapCandidate(); - + SPItem* item; // An item that is to be considered for snapping to bool clip_or_mask; // If true, then item refers to a clipping path or a mask - - /* To find out the absolute position of a clipping path or mask, we not only need to know - * the transformation of the clipping path or mask itself, but also the transformation of + + /* To find out the absolute position of a clipping path or mask, we not only need to know + * the transformation of the clipping path or mask itself, but also the transformation of * the object to which the clip or mask is being applied; that transformation is stored here */ - Geom::Matrix additional_affine; + Geom::Matrix additional_affine; }; class ObjectSnapper : public Snapper { public: - ObjectSnapper(SnapManager const *sm, Geom::Coord const d); + ObjectSnapper(SnapManager *sm, Geom::Coord const d); ~ObjectSnapper(); enum DimensionToSnap { - GUIDE_TRANSL_SNAP_X, // For snapping a vertical guide (normal in the X-direction) to objects, + GUIDE_TRANSL_SNAP_X, // For snapping a vertical guide (normal in the X-direction) to objects, GUIDE_TRANSL_SNAP_Y, // For snapping a horizontal guide (normal in the Y-direction) to objects ANGLED_GUIDE_TRANSL_SNAP, // For snapping an angled guide, while translating it accross the desktop ANGLED_GUIDE_ROT_SNAP, // For snapping an angled guide, while rotating it around some pivot point @@ -69,10 +69,10 @@ public: void guideSnap(SnappedConstraints &sc, Geom::Point const &p, Geom::Point const &guide_normal) const; - + bool ThisSnapperMightSnap() const; bool GuidesMightSnap() const; - + void freeSnap(SnappedConstraints &sc, Inkscape::SnapPreferences::PointType const &t, Geom::Point const &p, @@ -84,17 +84,17 @@ public: void constrainedSnap(SnappedConstraints &sc, Inkscape::SnapPreferences::PointType const &t, Geom::Point const &p, - bool const &first_point, + bool const &first_point, Geom::OptRect const &bbox_to_snap, ConstraintLine const &c, std::vector<SPItem const *> const *it) const; - + private: //store some lists of candidates, points and paths, so we don't have to rebuild them for each point we want to snap - std::vector<SnapCandidate> *_candidates; + std::vector<SnapCandidate> *_candidates; std::vector<Geom::Point> *_points_to_snap_to; std::vector<Geom::PathVector*> *_paths_to_snap_to; - + void _findCandidates(SPObject* parent, std::vector<SPItem const *> const *it, bool const &first_point, @@ -102,55 +102,55 @@ private: DimensionToSnap snap_dim, bool const _clip_or_mask, Geom::Matrix const additional_affine) const; - + void _snapNodes(SnappedConstraints &sc, Inkscape::SnapPreferences::PointType const &t, Geom::Point const &p, // in desktop coordinates bool const &first_point, std::vector<Geom::Point> *unselected_nodes) const; // in desktop coordinates - + void _snapTranslatingGuideToNodes(SnappedConstraints &sc, Inkscape::SnapPreferences::PointType const &t, Geom::Point const &p, Geom::Point const &guide_normal) const; - + void _collectNodes(Inkscape::SnapPreferences::PointType const &t, bool const &first_point) const; - + void _snapPaths(SnappedConstraints &sc, - Inkscape::SnapPreferences::PointType const &t, + Inkscape::SnapPreferences::PointType const &t, Geom::Point const &p, // in desktop coordinates bool const &first_point, std::vector<Geom::Point> *unselected_nodes, // in desktop coordinates SPPath const *selected_path) const; - + void _snapPathsConstrained(SnappedConstraints &sc, Inkscape::SnapPreferences::PointType const &t, Geom::Point const &p, // in desktop coordinates bool const &first_point, ConstraintLine const &c) const; - + bool isUnselectedNode(Geom::Point const &point, std::vector<Geom::Point> const *unselected_nodes) const; - - void _collectPaths(Inkscape::SnapPreferences::PointType const &t, + + void _collectPaths(Inkscape::SnapPreferences::PointType const &t, bool const &first_point) const; - + void _clear_paths() const; Geom::PathVector* _getBorderPathv() const; Geom::PathVector* _getPathvFromRect(Geom::Rect const rect) const; void _getBorderNodes(std::vector<Geom::Point> *points) const; - + bool _snap_to_itemnode; bool _snap_to_itempath; bool _snap_to_bboxnode; bool _snap_to_bboxpath; bool _snap_to_page_border; - - //If enabled, then bbox corners will only snap to bboxes, + + //If enabled, then bbox corners will only snap to bboxes, //and nodes will only snap to nodes and paths. We will not //snap bbox corners to nodes, or nodes to bboxes. //(snapping to grids and guides is not affected by this) - bool _strict_snapping; + bool _strict_snapping; }; } |
