summaryrefslogtreecommitdiffstats
path: root/src/snapped-point.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/snapped-point.cpp')
-rw-r--r--src/snapped-point.cpp35
1 files changed, 20 insertions, 15 deletions
diff --git a/src/snapped-point.cpp b/src/snapped-point.cpp
index 5d0d242dd..9df76b704 100644
--- a/src/snapped-point.cpp
+++ b/src/snapped-point.cpp
@@ -9,28 +9,24 @@
*/
#include "snapped-point.h"
+#include <libnr/nr-values.h>
-Inkscape::SnappedPoint::SnappedPoint(NR::Point p, NR::Coord d)
- : _distance(d), _point(p)
+Inkscape::SnappedPoint::SnappedPoint(NR::Point p, NR::Coord d, bool at_intersection)
+ : _distance(d), _point(p), _at_intersection(at_intersection)
{
-
}
-Inkscape::SnappedPoint::~SnappedPoint()
+Inkscape::SnappedPoint::SnappedPoint()
{
- /// TODO : empty the _hightlight_groups vector and destroy the
- /// HighlightGroup items it holds
+ _distance = NR_HUGE;
+ _point = NR::Point(0,0);
+ _at_intersection = false;
}
-void Inkscape::SnappedPoint::addHighlightGroup(HighlightGroup *group)
-{
- /// TODO
-}
-void Inkscape::SnappedPoint::addHighlightGroups(std::vector<HighlightGroup*> *groups)
+Inkscape::SnappedPoint::~SnappedPoint()
{
- /// TODO
}
NR::Coord Inkscape::SnappedPoint::getDistance() const
@@ -43,12 +39,21 @@ NR::Point Inkscape::SnappedPoint::getPoint() const
return _point;
}
-std::vector<Inkscape::HighlightGroup*> Inkscape::SnappedPoint::getHighlightGroups() const
+// search for the closest snapped point
+bool getClosestSP(std::list<Inkscape::SnappedPoint> &list, Inkscape::SnappedPoint &result)
{
- return _hightlight_groups;
+ bool success = false;
+
+ for (std::list<Inkscape::SnappedPoint>::const_iterator i = list.begin(); i != list.end(); i++) {
+ if ((i == list.begin()) || (*i).getDistance() < result.getDistance()) {
+ result = *i;
+ success = true;
+ }
+ }
+
+ return success;
}
-
/*
Local Variables:
mode:c++