summaryrefslogtreecommitdiffstats
path: root/src/snap.h
diff options
context:
space:
mode:
authorDiederik van Lierop <mailat-signdiedenrezidotnl>2010-07-12 05:51:13 +0000
committerDiederik van Lierop <mailat-signdiedenrezidotnl>2010-07-12 05:51:13 +0000
commit35300c9822f9f84c8a011913235fd4e5dc2c5ac8 (patch)
tree87c2a9ead85042f584c7b6411adfb7118496333d /src/snap.h
parentStop setting of stops from getting url() reference colors. (diff)
downloadinkscape-35300c9822f9f84c8a011913235fd4e5dc2c5ac8.tar.gz
inkscape-35300c9822f9f84c8a011913235fd4e5dc2c5ac8.zip
- Snap while rotating an object using the selector tool
- Rename the ConstraintLine class to SnapConstraint - Move some duplicated code to 2geom (bzr r9607)
Diffstat (limited to '')
-rw-r--r--src/snap.h27
1 files changed, 15 insertions, 12 deletions
diff --git a/src/snap.h b/src/snap.h
index 8a5688bea..26e599cc6 100644
--- a/src/snap.h
+++ b/src/snap.h
@@ -67,10 +67,11 @@ class SnapManager
{
public:
enum Transformation {
- TRANSLATION,
+ TRANSLATE,
SCALE,
STRETCH,
- SKEW
+ SKEW,
+ ROTATE
};
SnapManager(SPNamedView const *v);
@@ -113,23 +114,23 @@ public:
// point, by overwriting p, if snapping has occurred; otherwise p is untouched
void constrainedSnapReturnByRef(Geom::Point &p,
Inkscape::SnapSourceType const source_type,
- Inkscape::Snapper::ConstraintLine const &constraint,
+ Inkscape::Snapper::SnapConstraint const &constraint,
Geom::OptRect const &bbox_to_snap = Geom::OptRect()) const;
Inkscape::SnappedPoint constrainedSnap(Inkscape::SnapCandidatePoint const &p,
- Inkscape::Snapper::ConstraintLine const &constraint,
+ Inkscape::Snapper::SnapConstraint const &constraint,
Geom::OptRect const &bbox_to_snap = Geom::OptRect()) const;
void guideFreeSnap(Geom::Point &p, Geom::Point const &guide_normal, SPGuideDragType drag_type) const;
void guideConstrainedSnap(Geom::Point &p, SPGuide const &guideline) const;
- Inkscape::SnappedPoint freeSnapTranslation(std::vector<Inkscape::SnapCandidatePoint> const &p,
+ Inkscape::SnappedPoint freeSnapTranslate(std::vector<Inkscape::SnapCandidatePoint> const &p,
Geom::Point const &pointer,
Geom::Point const &tr) const;
- Inkscape::SnappedPoint constrainedSnapTranslation(std::vector<Inkscape::SnapCandidatePoint> const &p,
+ Inkscape::SnappedPoint constrainedSnapTranslate(std::vector<Inkscape::SnapCandidatePoint> const &p,
Geom::Point const &pointer,
- Inkscape::Snapper::ConstraintLine const &constraint,
+ Inkscape::Snapper::SnapConstraint const &constraint,
Geom::Point const &tr) const;
Inkscape::SnappedPoint freeSnapScale(std::vector<Inkscape::SnapCandidatePoint> const &p,
@@ -151,11 +152,16 @@ public:
Inkscape::SnappedPoint constrainedSnapSkew(std::vector<Inkscape::SnapCandidatePoint> const &p,
Geom::Point const &pointer,
- Inkscape::Snapper::ConstraintLine const &constraint,
+ Inkscape::Snapper::SnapConstraint const &constraint,
Geom::Point const &s, // s[0] = skew factor, s[1] = scale factor
Geom::Point const &o,
Geom::Dim2 d) const;
+ Inkscape::SnappedPoint constrainedSnapRotate(std::vector<Inkscape::SnapCandidatePoint> const &p,
+ Geom::Point const &pointer,
+ Geom::Coord const &angle,
+ Geom::Point const &o) const;
+
Inkscape::GuideSnapper guide; ///< guide snapper
Inkscape::ObjectSnapper object; ///< snapper to other objects
Inkscape::SnapPreferences snapprefs;
@@ -181,14 +187,11 @@ private:
SPDesktop const *_desktop;
bool _snapindicator; ///< When true, an indicator will be drawn at the position that was being snapped to
std::vector<Inkscape::SnapCandidatePoint> *_unselected_nodes; ///< Nodes of the path that is currently being edited and which have not been selected and which will therefore be stationary. Only these nodes will be considered for snapping to. Of each unselected node both the position (Geom::Point) and the type (Inkscape::SnapTargetType) will be stored
- //TODO: Make _unselected_nodes type safe; in the line above int is used for Inkscape::SnapTargetType, but if I remember
- //correctly then in other cases the int is being used for Inkscape::SnapSourceType, or for both. How to make
- //this type safe?
Inkscape::SnappedPoint _snapTransformed(std::vector<Inkscape::SnapCandidatePoint> const &points,
Geom::Point const &pointer,
bool constrained,
- Inkscape::Snapper::ConstraintLine const &constraint,
+ Inkscape::Snapper::SnapConstraint const &constraint,
Transformation transformation_type,
Geom::Point const &transformation,
Geom::Point const &origin,