summaryrefslogtreecommitdiffstats
path: root/src/snap.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/snap.h
downloadinkscape-179fa413b047bede6e32109e2ce82437c5fb8d34.tar.gz
inkscape-179fa413b047bede6e32109e2ce82437c5fb8d34.zip
moving trunk for module inkscape
(bzr r1)
Diffstat (limited to 'src/snap.h')
-rw-r--r--src/snap.h114
1 files changed, 114 insertions, 0 deletions
diff --git a/src/snap.h b/src/snap.h
new file mode 100644
index 000000000..6b94fb4c2
--- /dev/null
+++ b/src/snap.h
@@ -0,0 +1,114 @@
+#ifndef SEEN_SNAP_H
+#define SEEN_SNAP_H
+
+/**
+ * \file snap.h
+ * \brief Various snapping methods.
+ *
+ * Authors:
+ * Lauris Kaplinski <lauris@kaplinski.com>
+ * Frank Felfe <innerspace@iname.com>
+ * Carl Hetherington <inkscape@carlh.net>
+ *
+ * Copyright (C) 2000-2002 Lauris Kaplinski
+ *
+ * Released under GNU GPL, read the file 'COPYING' for more information
+ */
+
+#include <vector>
+
+#include <libnr/nr-coord.h>
+#include <libnr/nr-dim2.h>
+#include <libnr/nr-forward.h>
+#include "snapper.h"
+
+class SPNamedView;
+
+class SnapManager
+{
+public:
+ SnapManager(SPNamedView const *v) : namedview(v) {}
+
+ bool willSnapSomething() const;
+
+ Inkscape::SnappedPoint freeSnap(Inkscape::Snapper::PointType t,
+ NR::Point const &p,
+ SPItem const *it) const;
+
+ Inkscape::SnappedPoint freeSnap(Inkscape::Snapper::PointType t,
+ NR::Point const &p,
+ std::list<SPItem const *> const &it) const;
+
+ Inkscape::SnappedPoint constrainedSnap(Inkscape::Snapper::PointType t,
+ NR::Point const &p,
+ NR::Point const &c,
+ SPItem const *it) const;
+
+ Inkscape::SnappedPoint constrainedSnap(Inkscape::Snapper::PointType t,
+ NR::Point const &p,
+ NR::Point const &c,
+ std::list<SPItem const *> const &it) const;
+
+ std::pair<NR::Point, bool> freeSnapTranslation(Inkscape::Snapper::PointType t,
+ std::vector<NR::Point> const &p,
+ std::list<SPItem const *> const &it,
+ NR::Point const &tr) const;
+
+ std::pair<NR::Point, bool> constrainedSnapTranslation(Inkscape::Snapper::PointType t,
+ std::vector<NR::Point> const &p,
+ NR::Point const &c,
+ std::list<SPItem const *> const &it,
+ NR::Point const &tr) const;
+
+private:
+ SPNamedView const *namedview;
+};
+
+
+/* Single point methods */
+NR::Coord namedview_vector_snap(SPNamedView const *nv, Inkscape::Snapper::PointType t, NR::Point &req,
+ NR::Point const &d, std::list<SPItem const *> const &it);
+NR::Coord namedview_vector_snap(SPNamedView const *nv, Inkscape::Snapper::PointType t, NR::Point &req,
+ NR::Point const &d, SPItem const *it);
+NR::Coord namedview_dim_snap(SPNamedView const *nv, Inkscape::Snapper::PointType t, NR::Point& req,
+ NR::Dim2 const dim, SPItem const *it);
+NR::Coord namedview_dim_snap(SPNamedView const *nv, Inkscape::Snapper::PointType t, NR::Point& req,
+ NR::Dim2 const dim, std::list<SPItem const *> const &it);
+
+/* List of points methods */
+
+std::pair<double, bool> namedview_vector_snap_list(SPNamedView const *nv,
+ Inkscape::Snapper::PointType t, const std::vector<NR::Point> &p,
+ NR::Point const &norm, NR::scale const &s,
+ std::list<SPItem const *> const &it
+ );
+
+std::pair<NR::Coord, bool> namedview_dim_snap_list(SPNamedView const *nv,
+ Inkscape::Snapper::PointType t, const std::vector<NR::Point> &p,
+ double const dx, NR::Dim2 const dim,
+ std::list<SPItem const *> const &it
+ );
+
+std::pair<double, bool> namedview_dim_snap_list_scale(SPNamedView const *nv,
+ Inkscape::Snapper::PointType t, const std::vector<NR::Point> &p,
+ NR::Point const &norm, double const sx,
+ NR::Dim2 const dim,
+ std::list<SPItem const *> const &it);
+
+NR::Coord namedview_dim_snap_list_skew(SPNamedView const *nv, Inkscape::Snapper::PointType t,
+ const std::vector<NR::Point> &p,
+ NR::Point const &norm, double const sx, NR::Dim2 const dim);
+
+
+#endif /* !SEEN_SNAP_H */
+
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :