summaryrefslogtreecommitdiffstats
path: root/src/snapped-point.cpp
diff options
context:
space:
mode:
authorDiederik van Lierop <mail@diedenrezi.nl>2008-01-03 21:37:41 +0000
committerdvlierop2 <dvlierop2@users.sourceforge.net>2008-01-03 21:37:41 +0000
commit3614957da595ec421cad8350fe3b645d3f9e836e (patch)
tree141618522cfcc3c1d27b2c0c267df0234909059f /src/snapped-point.cpp
parent* Added initial Breton (br_FR) translation by Alan Monfort (closes #180070) (diff)
downloadinkscape-3614957da595ec421cad8350fe3b645d3f9e836e.tar.gz
inkscape-3614957da595ec421cad8350fe3b645d3f9e836e.zip
1) fix snapping while scaling
2) fix constrained snapping 3) improve snapping logic (again), or more specifically: better obey "always snap" 4) refactoring to reduce risk of bugs: renaming variables and methods for better readability, adding class members instead of using std::pairs, etc. (bzr r4379)
Diffstat (limited to 'src/snapped-point.cpp')
-rw-r--r--src/snapped-point.cpp41
1 files changed, 38 insertions, 3 deletions
diff --git a/src/snapped-point.cpp b/src/snapped-point.cpp
index d97abda1d..8a0aea3c7 100644
--- a/src/snapped-point.cpp
+++ b/src/snapped-point.cpp
@@ -11,17 +11,32 @@
#include "snapped-point.h"
-Inkscape::SnappedPoint::SnappedPoint(NR::Point p, NR::Coord d, bool at_intersection, NR::Coord d2)
- : _distance(d), _point(p), _at_intersection(at_intersection), _second_distance(d2)
+// overloaded constructor
+Inkscape::SnappedPoint::SnappedPoint(NR::Point p, NR::Coord d, NR::Coord t, bool a)
+ : _point(p), _distance(d), _tolerance(t), _always_snap(a)
+{
+ _at_intersection = false;
+ _second_distance = NR_HUGE;
+ _second_tolerance = 0;
+ _second_always_snap = false;
+}
+
+Inkscape::SnappedPoint::SnappedPoint(NR::Point p, NR::Coord d, NR::Coord t, bool a, bool at_intersection, NR::Coord d2, NR::Coord t2, bool a2)
+ : _point(p), _distance(d), _tolerance(t), _always_snap(a), _at_intersection(at_intersection),
+ _second_distance(d2), _second_tolerance(t2), _second_always_snap(a2)
{
}
Inkscape::SnappedPoint::SnappedPoint()
{
- _distance = NR_HUGE;
_point = NR::Point(0,0);
+ _distance = NR_HUGE;
+ _tolerance = 0;
+ _always_snap = false;
_at_intersection = false;
_second_distance = NR_HUGE;
+ _second_tolerance = 0;
+ _second_always_snap = false;
}
@@ -35,11 +50,31 @@ NR::Coord Inkscape::SnappedPoint::getDistance() const
return _distance;
}
+NR::Coord Inkscape::SnappedPoint::getTolerance() const
+{
+ return _tolerance;
+}
+
+bool Inkscape::SnappedPoint::getAlwaysSnap() const
+{
+ return _always_snap;
+}
+
NR::Coord Inkscape::SnappedPoint::getSecondDistance() const
{
return _second_distance;
}
+NR::Coord Inkscape::SnappedPoint::getSecondTolerance() const
+{
+ return _second_tolerance;
+}
+
+bool Inkscape::SnappedPoint::getSecondAlwaysSnap() const
+{
+ return _second_always_snap;
+}
+
NR::Point Inkscape::SnappedPoint::getPoint() const
{