summaryrefslogtreecommitdiffstats
path: root/src/line-snapper.h
diff options
context:
space:
mode:
authorMenTaLguY <mental@rydia.net>2006-01-16 02:36:01 +0000
committermental <mental@users.sourceforge.net>2006-01-16 02:36:01 +0000
commit179fa413b047bede6e32109e2ce82437c5fb8d34 (patch)
treea5a6ac2c1708bd02288fbd8edb2ff500ff2e0916 /src/line-snapper.h
downloadinkscape-179fa413b047bede6e32109e2ce82437c5fb8d34.tar.gz
inkscape-179fa413b047bede6e32109e2ce82437c5fb8d34.zip
moving trunk for module inkscape
(bzr r1)
Diffstat (limited to 'src/line-snapper.h')
-rw-r--r--src/line-snapper.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/line-snapper.h b/src/line-snapper.h
new file mode 100644
index 000000000..581466d33
--- /dev/null
+++ b/src/line-snapper.h
@@ -0,0 +1,44 @@
+#ifndef SEEN_LINE_SNAPPER_H
+#define SEEN_LINE_SNAPPER_H
+
+/**
+ * \file src/line-snapper.h
+ * \brief Superclass for snappers to horizontal and vertical lines.
+ *
+ * Authors:
+ * Carl Hetherington <inkscape@carlh.net>
+ *
+ * Released under GNU GPL, read the file 'COPYING' for more information.
+ */
+
+#include "snapper.h"
+
+namespace Inkscape
+{
+
+class LineSnapper : public Snapper
+{
+public:
+ LineSnapper(SPNamedView const *nv, NR::Coord const d);
+
+protected:
+ typedef std::list<std::pair<NR::Dim2, NR::Coord> > LineList;
+
+private:
+ SnappedPoint _doFreeSnap(NR::Point const &p,
+ std::list<SPItem const *> const &it) const;
+
+ SnappedPoint _doConstrainedSnap(NR::Point const &p,
+ NR::Point const &c,
+ std::list<SPItem const *> 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;
+};
+
+}
+
+#endif /* !SEEN_LINE_SNAPPER_H */